美文网首页
Linux之ps命令和top命令

Linux之ps命令和top命令

作者: 转身丶即天涯 | 来源:发表于2020-01-02 23:04 被阅读0次

进程状态

在Linux中,进程有五种状态。

  • TASK_RUNNING(运行态):正在执行,或者在队列中等待执行。
  • TASK_INTERRUPTIBLE(可中断睡眠态):进程被阻塞,等待某些条件的完成。一旦完成这些条件,内核会将进程至为运行态。
  • TASK_UNINTERRUPTIBLE(不可中断睡眠态):进程被阻塞,等待某些条件的完成。与可中断睡眠不同的是,该状态的进程不可被信号唤醒。
  • TASK_ZOMBIE(僵死态):该进程已经结束,但是该进程的父进程并没有将其回收。
  • TASK_STOP(终止态):进程停止执行,通常进程在接受到SIGSTOP、SIGTTIN、SIGTTOU等信号时会进入该状态。

Linux信号
请看下一篇《Linux信号》

PS查看进程的状态

现在我们知道了进程一共有五种状态,而我们也想知道我们启动的进程目前到底是怎样的状态。
可以通过ps命令查看进程的状态。

ps -a

显示当前机器上所有用户的进程。


image.png
ps -A

显示所有的进程,不仅包含用户的进程,还包括系统进程。和-e参数一样


image.png
ps -u

以用户为主的进程。


image.png
ps ax

一般用ps ax列出更加完成的进程信息。


image.png
ps -l

列出较长,较完整的进程信息。


image.png

和ps ax进行对比,多了以下几项,F、S、UID、PPID、C、PRI、NI、ADDR、SZ、WCHAN。
稍后再看看,这都代表什么意思,莫慌。

ps aux 配合管道运算符查看你要查看的进程
image.png

不仅仅是PID,还可以grep任何关键字,比如启动进程的命令,比如python等等


image.png
ps命令的缺点

ps命令只能查看进程的瞬时状态,无法进行持续性的监控。Linux提供了另外一个命令top来进行持续性监控。

让我们看看ps命令输出的每列都是什么意思
  • USER:用户。
  • PID:进程ID。
  • %CPU:该进程使用CPU占比。
  • %MEM:该进程使用物理内存占比。
  • VSZ:该进程使用虚拟内存大小(单位KB)。
  • RSS:该进程占用的固定内存量(单位KB)。
  • TTY:该进程在哪个终端机上运作,若与终端机无关则显示 ‘?’。
    tty1~tty6表示本机上登录者的进程。pst/0等表示通过网络连接到本机的进程。
  • STAT:进程的状态。
    R,运行态。S,睡眠态。T,终止态。Z,僵死态。
  • START:该进程被触发时的启动时间。
  • TIME:该进程实际使用CPU时间。
  • COMMAND:拉起进程的启动命令。

TOP持续监听进程的状态

top是一个非常牛逼的命令,为什么这么说呢?
因为它不仅可以监听系统中的进程状态,还可以监听系统的负载状态,包括CPU负载、内存负载、各进程所占用的系统资源,并以一定的频率来统计这些信息。


image.png

可以看到这一页的信息量很大啊,我们一行行的来看看,都给我们展示了哪些信息。
第一行:系统信息概览
top - 当前系统时间,系统运行时间,用户数量,CPU在1分钟内cpu负载值,CPU在5分钟内cpu负载值,CPU在15分钟内cpu负载值。

第二行:进程信息概览
Tasks: 进程总数,运行态进程数,睡眠态进程数(包含了可中断和不可中断睡眠态),终止态进程数,僵死态进程数。

第三行:CPU信息概览
%Cpu(s): 用户态下进程占用CPU占比,系统态下进程占用CPU占比,nice值大于的0的进程在用户态下占用CPU时间比,CPU处于idle状态时间比,CPU处于wait状态时间比,处理硬中断时间占比,处理软中断时间占比

第四行:内存信息概览
KiB Mem:物理总内存,可用内存,已使用内存,用作缓冲区的内存数量。

第五行:虚存信息概览
KiB Swap:交换控件总量,空闲交换区,已使用交换区,可用交换区的大小。

下面是进程区详细信息,分别看一下每一列都代表什么吧
  • PID:进程号
  • USER:拉起进程的用户
  • PR:priority缩写,进程优先级。若PR值+100小于100,则该进程为实时进程(real-time),否则为普通进程。
    PR值越低,优先级越高,越容易获得CPU的调度。
  • NI:nice缩写,表示进程的nice优先级,实时进程的nice值为0,普通进程的nice值范围是-20~19。
  • VIRT:进程所占虚拟内存的大小(默认单位KB)。
  • RES:进程所占物理内存的大小(默认单位KB)。
  • SHR:进程所占共享内存的大小(默认单位KB)。
  • S:进程的运行状态。
  • %CPU:采样周期内,进程所占CPU百分比。
  • %MEM:采样周期内,进程所占内存百分比。
  • TIME+: 进程使用CPU时间的总计。
  • COMMAND: 拉起进程的命令。
对输出结果排序

默认情况下,top的输出根据cpu的使用率排序。

在执行top命令时,按 shift+O,查看排序项及其快捷键。
image.png
在执行top命令时,按 shift+R,反向排序。
监听指定的进程,top -p PID1,PID2, ...
image.png
监听特定用户的进程,top -U user_name

比如监听root账号的所有进程。


image.png

也可以在运行top命令时,按 ‘u’快捷键。


image.png
查看所有cpu核的使用情况

默认的top命令给出了CPU的整体使用情况,可以在执行top命令时,按快捷键 ‘1’查看各核的使用情况。
按完了之后,下图中的红框中会列出每个cpu的状况,我只有一个cpu,所以是cpu0.


image.png

相关文章

网友评论

      本文标题:Linux之ps命令和top命令

      本文链接:https://www.haomeiwen.com/subject/symvnctx.html