ps 进程查看器

一、ps语法

格式:ps  [选项]

常用选项:
-a          显示所有进程(不包括没有终端的进程)
-x          显示没有终端的进程
-u          显示进程的所有拥有者
-e          显示所有进程everyone(不显示进程状态)
-l          按长格式显示进程清单
-r          只显示正在运行中的进程
-f          显示进程之间的父/子关系
-w          显示进程的命令行参数(最多半行)

二、 ps aux参数详解

[root@iZwz9bhan5nqzh979qokrkZ ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  51564  3044 ?        Ss   May26   0:41 /usr/lib/systemd/systemd 
root         2  0.0  0.0      0     0 ?        S    May26   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    May26   0:03 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   May26   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    May26   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    May26   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    May26   0:27 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S    May26   0:01 [watchdog/0]
root        12  0.0  0.0      0     0 ?        S    May26   0:00 [kdevtmpfs]

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的CPU使用率
%MEM: 占用的内存使用率
VSZ: 表示如果一个程序完全驻留在内存的话需要占用多少内存空间;
RSS: 指明了当前实际占用了多少内存
TTY: 该进程当前控制终端的ID

STAT: 显示了进程当前的状态
    R       running 运行状态 正在进行的CPU的处理
    S       sleep 睡眠状态 暂时没有正在运行,在后台挂着
    Z       zombie僵尸状态 僵死状态 (留下来的是否正常结束的反馈) echo ¥?  0是有僵死进程 1代表没有
    T       stopped 暂停状态 挂起状态 不会占用CPU
    D       不可中断睡眠
    x       死掉的进程
    Ss      s进程的领导者,父进程
    S<      优先级较高的程序
    SN      优先级较低的程序
    R+      前台的进程组 
    Sl      以线程的方式运行

START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

注:重点关注VSZ、RSS

扩展:计算所有进程占用的内存大小?
思路:计算所有进程占用的大小主要就是统计所有进程的RSS大小
[root@iZwz9bhan5nqzh979qokrkZ ~]# ps aux | awk '{mem += $6} END {print mem/1024/1024}'
0.674767

三、top参数详解

[root@iZwz9bhan5nqzh979qokrkZ ~]# top
top - 14:48:41 up 4 days,  2:13,  1 user,  load average: 0.00, 0.02, 0.05
Tasks: 119 total,   1 running, 118 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1016164 total,   218744 free,   452296 used,   345124 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   406856 avail Mem 

第一行:
14:48:41: 表示当前时间
up 4 days,  2:13:表示系统启动时间
1 user当前系统登录用户数目
load average: 0.00, 0.02, 0.05:平均负载(1分钟,10分钟,15分钟)
注:平均负载(load average),一般对于单个cpu来说,负载在0~1.00之间是正常的,超过1.00须引起注意。在多核cpu中,系统平均负载不应该高于cpu核心的总数。

第二行:
119 total:进程总数
1 running:运行进程数
118 sleeping:休眠进程数
0 stopped:终止进程数
0 zombie:僵尸进程数

第三行:
0.0 us  %us 用户空间占用cpu百分比;
0.3 sy  %sy 内核空间占用cpu百分比;
0.0 ni  %ni 用户进程空间内改变过优先级的进程占用cpu百分比;
99.7 id %id 空闲cpu百分比,反映一个系统cpu的闲忙程度。越大越空闲; id:idle
0.0%wa  %wa 等待输入输出(I/O)的cpu百分比;wa:wait
0.0%hi  %hi 指的是cpu处理硬件中断的时间;  hi:hardware
0.1%si  %si 值的是cpu处理软件中断的时间;  si:software
0.0%st  %st 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间。

第四行:
1016164 total       total:总的物理内存;
452296  used        used:使用物理内存大小;
218744  free        free:空闲物理内存;
345124  buff/cache  buffers:用于内核缓存的内存大小

第五行:不解释了,相信大家都知道了!

扩展:Linux实际内存使用情况计算
从应用程序的角度来说,可用内存=系统free memory+buffers+cached

注:buffers与cached区别:buffers指的是块设备的读写缓冲区,cached指的是文件系统本身的页面缓存。他们都是Linux系统底层的机制,为了加速对磁盘的访问。

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                  
24469 zabbix    20   0  220260   2944   1584 S  0.3  0.3   0:22.17 zabbix_server                                                                                                            
25929 mysql     20   0 1197076 191768   5476 S  0.3 18.9  11:58.38 mysqld                                                                                                                   
    1 root      20   0   51564   3044   1860 S  0.0  0.3   0:41.65 systemd                                                                                                                  
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                 
    3 root      20   0       0      0      0 S  0.0  0.0   0:03.71 ksoftirqd/0                                                                                                              
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                                                             
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                                                                                              
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                                                                                   
    9 root      20   0       0      0      0 S  0.0  0.0   0:27.39 rcu_sched                           

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下:
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top
s – 改变画面更新周期    


各个参数的意义
PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
PID     进程id
PPID    父进程id
USER    进程所有者的用户名
TTY     启动进程的终端名。不是从终端启动的进程则显示为?
PR      优先级
NInice  值。负值表示高优先级,正值表示低优先级
%CPU    上次更新到现在的CPU时间占用百分比
TIME    进程使用的CPU时间总计,单位秒
TIME+   进程使用的CPU时间总计,单位1/100秒
%MEM    进程使用的物理内存百分比
VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE    可执行代码占用的物理内存大小,单位kb
DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR     共享内存大小,单位kb
nFLT    页面错误次数
nDRT    最后一次写入到现在,被修改过的页面数常用选项:

四、STAT进程状态

R       running 运行状态 正在进行的CPU的处理
S       sleep 睡眠状态 暂时没有正在运行,在后台挂着
Z       zombie僵尸状态 僵死状态 (留下来的是否正常结束的反馈) echo ¥?  0是有僵死进程 1代表没有
T       stopped 暂停状态 挂起状态 不会占用CPU
D       不可中断睡眠
x       死掉的进程
Ss      s进程的领导者,父进程
S<      优先级较高的程序
SN      优先级较低的程序
R+      前台的进程组 
Sl      以线程的方式运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

东城绝神

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

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

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

打赏作者

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

抵扣说明:

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

余额充值