每天三分半钟搞定linux基础知识(7) ps和top命令

1 ps命令

ps命令能查看系统中进程相关的信息,对于ps命令而言,可以带的参数实在太多了,其实不需要记住所有的参数,只要记住自己常用的就行了。比如ps -ef可以显示系统上运行的所有进程,输入:

ps -ef|more

结果为:
34.png

ps -ef可以显示出系统上运行的所有进程,其中-e表示显示所有运行在系统上的进程,-f表示则扩展打印出一些列,这些列包含很多重要信息,比如上图所示,其中:

UID表示启动进程的用户;
PID和PPID表示进程和该进程父进程的ID;
C表示进程周期中的CPU利用率;
STIME表示进程启动的系统时间;
TTY表示进程启动的终端设备;
TIME表示进程占用的CPU时间,注意这不是运行时间;
CMD表示启动的程序名称;

上面的参数应该非常多了,如果想要更多的参数的话加上-l(小写的L
比如输入:

ps -l

结果为:

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  3676  3665  0  80   0 -  6339 wait   pts/3    00:00:00 bash
4 R  1000  5547  3676  0  80   0 -  7664 -      pts/3    00:00:00 ps

可以发现只用一个-l参数的话只会显示当前控制台下属于当前用户的进程,新增的列有:

F表示内核分配给进程的系统标记;
S表示状态,状态有以下几种:
    D    不可中断     Uninterruptible sleep (usually IO)
    R    正在运行,或在队列中的进程
    S    处于休眠状态
    T    停止或被追踪
    Z    僵尸进程
    W    进入内存交换(从内核2.6开始无效)
    X    死掉的进程
PRI表示进程的优先级,数字越大表示优先级越低
NI谦让度值用来参与决定优先级
ADDR石金成的内存地址
SZ表示进程被换出,所需交换空间的大致大小
WACHAN表示进程休眠的内核函数的地址

如果输入ps l的话与ps -l的结果基本相同,前者是BSD风格,后者是unix风格,比如输入:

ps l

结果为:

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0  1000  3676  3665  20   0  25356  6248 wait   Ss   pts/3      0:00 /bin/bash
4  1000 12893  3676  20   0  30656  1500 -      R+   pts/3      0:00 ps l

其中

VSZ表示进程在内存中的大小,以KB为单位
RSS进程在未换出来时的占用的物理内存
STAT代表进程转台的双字符状态码,这个双字符状态码的第一个字符和unix风格的含义相同,第二个字符为:
    <    高优先级
    N    低优先级
    L    有些页被锁进内存
    s    包含子进程
    +    位于后台的进程组;
    l    多线程,克隆线程  multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

还有一个用法我个人非常喜欢,输入ps axuf,这个指令可以显示父子进程的关系:

ps axuf

结果为:
5.png

2 top命令

ps命令有一个缺点,就是只能在某个特定时间点显示进程信息,如果想动态显示内存变化等,可以使用top信息。
输入:

top

结果为:
6.png

该结果中:
第一行有4个参数,分别是当前系统时间(时:分:秒),系统运行时间(时:分),登陆的用户个数,系统的平均负载。其中平均负载有3个值,分别是最近1分钟,最近5分钟和最近15分钟的平均负载,值越大说明负载越高。一般情况下,最近一分钟如果有高负载不足为奇,但如果最近15分钟的负载都非常高,那就有问题了。一般情况下,如果系统负载超过2,就说明系统比较繁忙。

第二行显示了进程的个数信息,有5个参数,分别是进程总个数,当前运行进程个数,睡眠的今晨个数,停止的今晨个数,僵尸进程个数。

第三行显示了CPU相关信息,分别是us:用户态使用的cpu时间比
sy:系统态使用的cpu时间比
ni:用做nice加权的进程分配的用户态cpu时间比
id:空闲的cpu时间比
wa:cpu等待磁盘写入完成时间
hi:硬中断消耗时间
si:软中断消耗时间
st:虚拟机偷取时间

第四行是物理内存相关信息,分别是总共的物理内存,空闲的物理内存,当前使用了多少物理内存,缓存区占用的内存,其中
cache是高速缓存,用于CPU和内存之间的缓冲
buffer是I/O缓存,用于内存和硬盘的缓冲

第五行是交换空间的内存。

剩下的都是对一个个进程的描述了,其中

PID是进程的ID
USER是进程所属用户的名字
PR表示进程的优先级
NI表示进程的谦让度值
VIRT表示虚拟内存大小
RES表示物理内存大小
SHR表示进程或其他进程共享的内存总量
S是进程的状态
CPU是进程使用的cpu比例
MEM是进程使用的内存占可用内存的比例
TIME是从进程启动后到当前占用的cpu时间,而不是运行的总时间
COMMAND是进程对应的程序名

默认情况下,是按照cpu使用率排序的,如果想要修改排序标准,按f后移动上下方向键到新的字段上,然后输入s,然后按q退出就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涤除而玄览

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值