700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【linux学习笔记】ps top 查看的静态命令和动态命令

【linux学习笔记】ps top 查看的静态命令和动态命令

时间:2020-02-09 08:58:16

相关推荐

【linux学习笔记】ps top 查看的静态命令和动态命令

查看进程的静态命令ps 和动态命令top

学习书籍《鸟哥的LINUX私房菜 基础学习篇 (第四版)》

查看进程一共三个命令:ps , top, pstree

ps: 静态查看top: 动态查看pstree: 查看进程树之间的关系 (本篇暂未记录)

ps

常用:

ps aux查看系统所有进程ps -lA 同ps aux作用ps axjf连同部分进程树的状态ps -l 只查看自己bash进程

选项与参数:

-A : 所有进程均显示出来-u: 有效使用者相关的进程x: 通常与a这个参数一起使用,列出较完整信息l: 长格式输出j: 任务的格式(jobs format)-f: 做一个更为完整的输出

选项前加不加-(减号),ps -lps l显示如下:

执行ps auxps -aux除了最后一行它们自己本身命令显示的差异外也是一样的。

书里没写有无减号的意义 但执行命令输出暂时看起来没有太大查别。

ps -l 的输出列解释:

#只查看自己当前bash此次登录的PID以及相关信息[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# ps -l F S UIDPID PPID C PRI NI ADDR SZ WCHAN TTYTIME CMD0 S0 2032576 2032558 0 80 0 - 55840 -pts/0 00:00:00 bash4 R0 2033289 2032576 0 80 0 - 56589 -pts/0 00:00:00 ps

F: process flags 进程标识,说明这个进程的权限,常见号码:4(表示此进程权限为root),1(表示此子进程仅执行复制(fork)而没有实际执行(exec))

S: STAT 进程状态,主要状态有:

R(Running):进程在运行中S(Sleep):睡眠状态(idle即空闲状态),但可以被唤醒(signal)D: 不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况T(stop):停止状态,可能是在任务控制(后台暂停)或跟踪(traced)状态。Z(Zombie):僵尸状态,进程已终止但却无法被删除至内存外。

UID/PID/PPID:此进程被该UID所拥有/ 此进程的PID号码/ 此进程的父进程PID号码)

C:CPU使用率,单位百分比

PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级。数值越小表示越先被执行。

ADDR/SZ/WCHAN:都与内存有关。ADDR为kernel function,表示该进程在内存的哪个部分,如果是running的进程,则显示-;SZ表示此进程用掉多少内存;WCHAN:表示目前进程是否在运行,-表示在运行中。

TTY:登录者的终端位置,若为远程登录则使用动态终端接口名称pts/n。

TIME:此进程实际花费CPU运行的时间。

CMD:command缩写,表示造成此进程的触发命令是什么。

所以上述输出的

[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# ps -l F S UIDPID PPID C PRI NI ADDR SZ WCHAN TTYTIME CMD0 S0 2032576 2032558 0 80 0 - 55840 -pts/0 00:00:00 bash4 R0 2033289 2032576 0 80 0 - 56589 -pts/0 00:00:00 ps

表示:

bash的进程属于UID为0的用户,状态为睡眠,之所以为睡眠是因为它触发了ps(状态为run)。此进程PID为2032576,优先执行顺序为80,执行bash所获取的终端接口为pts/0,运行状态为-(running)。

ps aux的输出列解释:

USER: 该进程属于所属用户账号;

PID:进程的进程ID;

%CPU:进程使用掉的CPU资源百分比;

%MEM:进程所占用的物理内存百分比;

VSZ:进程使用掉的虚拟内存量(KB);

RSS:进程占用的固定内存量(KB);

TTY:进程在哪个终端上面运行,若与终端无关则显示?(问号)(如systemd进程),若为pts/0等表示由网络连接进入主机的进程;

STAT: 该进程目前的状态,与ps -l的S标识相同(R/S/T/Z);

START:该进程被触发启动的时间;

TIME:该进程实际使用CPU运行的时间;

COMMAND:该进程的实际命令是什么;

一般来说 ps aux 会按照PID的顺序来排序显示。

找出与cron与rsyslog这两个服务有关的PID号码:

[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# ps aux|egrep '(cron|rsyslog)'root 1240 0.0 1.7 679868 36024 ? Ssl 9:19 /usr/sbin/rsyslogd -nroot 1247 0.0 0.0 223116 1920 ? Ss 0:04 /usr/sbin/crond -nroot2033386 0.0 0.0 221528 860 pts/0 R+ 17:37 0:00 grep -E --color=auto (cron|rsyslog)

使用ps aux|egrep ‘正则表达式服务名’ 来模糊查找对应的进程信息

僵尸进程:该进程应该已经执行完毕,或是应该要终止了,但是该进程的父进程却无法完整地将进程结束掉,造成该进程一直存在内存当中。如果你发现某个进程CMD后面跟着<defunct>时,就代表该进程是僵尸进程。

产生场景:系统不稳定容易造成;程序写的不好;用户操作习惯不良等;

top 动态查看进程

相对于ps是选取一个时间点的进程状态,top则可以持续监测进程运行的状态。

top [-d 数字] | top [-bnp]

选项与参数:

-d: 后面接秒数,表示整个进程姐妹更新的秒数,默认是5秒。

-b: 以批量的方式执行top,通常会搭配> 文件 将结果输出到文件。

-n: 与-b搭配,表示需要执行及此top的输出结果。

-p: 指定某些个PID来执行查看监测。

man top可以查看更多说明。

查看某个进程的每隔2s的实时状态:top -d 2 -p PID

命令:

[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# $$ 表示查看当前bash的PID-bash: 2032576: command not found[root@iZ2ze3a5ws0mjxyxfspk8nZ ~]# top -d 2 -p 2032576

输出:

top - 17:56:18 up 53 days, 2:02, 1 user, load average: 0.04, 0.01, 0.00Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie%Cpu(s): 1.0 us, 1.0 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.5 hi, 0.0 si, 0.0 stMiB Mem : 1968.8 total, 178.3 free, 1112.4 used, 678.1 buff/cacheMiB Swap:0.0 total,0.0 free,0.0 used. 705.5 avail MemPID USERPR NI VIRT RES SHR S %CPU %MEMTIME+ COMMAND2032576 root20 0 223360 4860 3424 S 0.0 0.2 0:00.03 bash

top输出信息说明:

第一行(top…):这一行显示的信息分别为:

- 目前的时间,即 17:56:18;

- 开机到目前为止所经过的时间,即up 53 days;

- 已经登录系统的用户人数,即 1 user;

- 系统在1,5,15分钟的平均任务负载。代表1,5,15分钟,系统平均要负责运行几个进程(任务)的意思。数值越小代表系统越闲置,若高于1就要注意你的系统进程是否太过于频繁了。

第二行(Task…):目前进程总量,和目前各状态下进程的数量统计;要注意最后那个zombie的那个数值,如果不是0,要排查的。

第三行(%Cpus…):显示CPU的整体负载。wa表示I/O wait

PR:Priority的简写 进程的优先执行顺序 越小越先被执行

NI:Nice的简写,与Priority有关,也是越小越先被执行

%CPU:CPU的使用率

%MEM:内存的使用率;

TIME+:CPU使用时间的累加;

top中的命令

top默认使用CPU使用率(%CPU)作为排序的依据。

如果想使用内存使用率排序,则可以按下M(注意大写的),若要恢复则按下P(也是大写的)。退出top,按下q。

排序的作用,比如:如果想要找出最消耗CPU资源的进程,使用top,然后top当中按下P,就可以很快知道。

我觉得 ps aux 和 top 可以类比为 cat 和 tail -f ,一个静态查看,一个动态查看。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。