进程监控命令ps和top(五)

一 ps命令

1 描述

  该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了。
  ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。

2 主要参数

  常见参数:

参数作业
a列出终端相关的,如果想列出所有进程需要配合x
u显示面向用户的格式
x列出终端先关的,如果列出所有进程需要配合a
f显示进程树,这个显示效果跟pstree的效果差远啦
k根据指定指标去排序
–sort根据指定指标去排序,%cpu以cpu占用排序,-%cpu反序排
o设置显示的列
L显示支持的属性列表
-C指定命令,多个命令用,分割
-L显示线程
-u指定有效用户ID或名称
-U指定真正的用户ID或名称
-p显示指定pid进程
–pid显示属于pid的子进程
–forest树型显示

  最常用的有ps -efps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。这个命令比较特殊,支持了三种风格:

  • Unix选项:使用1个-
  • BSD选项:选项不使用-
  • GNU长选项:选项使用2个-

3 ps -ef

  ps -ef是用标准的格式显示进程的、其格式如下:
在这里插入图片描述

名称内容
UID用户ID、但输出的是用户名
PID进程的ID
PPID父进程ID
C进程占用CPU的百分比
STIME进程启动到现在的时间
TTY该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD命令的名称和参数

4 ps aux

  ps aux用BSD的格式来显示、其格式如下:
在这里插入图片描述

名称内容
USER用户名
PID进程的ID
%CPU进程占用的CPU百分比
%MEM占用内存的百分比
VSZ该进程使用的虚拟內存量(KB)
RSS该进程占用的固定內存量(KB)(驻留中页的数量)
STAT进程的状态
START该进程被触发启动时间
TIME该进程实际使用CPU运行的时间

  其中STAT状态位常见的状态字符有:

名称内容
D无法中断的休眠状态(通常 IO 的进程);
R正在运行可中在队列中可过行的;
S处于休眠状态;
T停止或被追踪;
W进入内存交换 (从内核2.6开始无效);
X死掉的进程 (基本很少见);
Z僵尸进程;
<优先级高的进程
N优先级较低的进程
L有些页被锁进内存;
s进程的领导者(在它之下有子进程);
l多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
+位于后台的进程组

5 用例

  1. 查看所有进程的命令,进程id,cpu占用,内存占用信息 ,并按照cpu占用排序:
ps axo cmd,pid,%cpu,%mem k %cpu
  1. 查看指定终端的进程:
ps -t pts/3
  1. 查看指定终端的进程:
ps -t pts/3

二 top命令

1 概述

  top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
在这里插入图片描述

2 功能说明

  第一行,任务队列信息,同 uptime 命令的执行结果。

系统时间:19:27:01
运行时间:up 54 min
当前登录用户:1 user
负载均衡(uptime) load average: 0.02, 0.03, 0.00,average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

  第二行,Tasks — 任务(进程)

总进程:159 total, 运行:1 running, 休眠:157 sleeping, 停止: 1 stopped, 僵尸进程: 0 zombie

  第三行,cpu状态信息

0.0%us【user space】— 用户空间占用CPU的百分比。
0.1%sy【sysctl】— 内核空间占用CPU的百分比。
0.0%ni【】— 改变过优先级的进程占用CPU的百分比。
99.9%id【idolt】— 空闲CPU百分比。
0.0%wa【wait】— IO等待占用CPU的百分比。
0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比。
0.0%si【Software Interrupts】— 软中断占用CPU的百分比。

  第四行,内存状态。

1012288k total, 234464k used, 777824k free, 24084k buffers【缓存的内存量】

  第五行,swap交换分区信息。

614396k total, 0k used, 614396k free, 72356k cached【缓冲的交换区总量】

  备注:可用内存=free + buffer + cached,对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
  第六行,空行。
  第七行以下:各进程(任务)的状态监控。

名称含义
PID进程id
USER进程所有者
PR进程优先级
NInice值。负值表示高优先级,正值表示低优先级
VIRTvirtual memory usage 虚拟内存,单位kb。VIRT=SWAP+RES
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RESresident memory usage 常驻内存,单位kb。RES=CODE+DATA
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHRshared memory 共享内存,单位kb
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
S进程状态。D:不可中断的睡眠状态,R:运行,S:睡眠,T:跟踪/停止,Z:僵尸进程
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND进程名称(命令名/命令行)

3 其他使用技巧

  1. 多U多核CPU监控:在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况。
  2. 高亮显示当前运行进程:敲击键盘“b”(打开/关闭加亮效果),“top”进程被加亮了,可以通过敲击“y”键关闭或打开运行态进程的加亮效果。
  3. 进程字段排序:默认进入top时,各进程是按照CPU的占用量来排序的,敲击键盘“x”(打开/关闭排序列的加亮效果)。
  4. 通过”shift + >”或”shift + <”可以向右或左改变排序列:按一次”shift + >”的效果图,视图现在已经按照%MEM来排序,再按一次按时间排。
  5. top交互命令。
命令作用
h显示帮助画面,给出一些简短的命令总结说明
k终止一个进程。
i忽略闲置和僵死进程。这是一个开关式命令。
q退出程序
r重新安排一个进程的优先级别
S切换到累计模式
s改变两次刷新之间的延迟时间(单位为s)
f或者F从当前显示中添加或者删除项目
o或者O改变显示项目的顺序
l关闭或开启第一部分第一行 top 信息的表示
m关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
t关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
c切换显示命令名称和完整命令行
M根据驻留内存大小进行排序
N以 PID 的大小的顺序排列表示进程列表
P根据CPU使用百分比大小进行排序
T根据时间/累计时间进行排序
W将当前设置写入~/.toprc文件中

4 常用显示命令

  显示完整命令:top -c
  设置信息更新次数:top -n 2【表示更新两次后终止更新显示】
  设置信息更新时间:top -d 3【表示更新周期为3秒】
  1、实时性:ps命令是系统在过去执行的进程的静态快照;top命令反应的是系统进程动态信息,默认3s更新一次,可以用ps -d指定屏幕刷新的延迟时间。2、交互性:允许用户输入控制命令,比如在top命令的模式下输入n5,就显示如图的此时的5个最活跃的进程,top会持续运行直到用户按下"q",退出top

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值