进程监控命令ps和top(五)
目录
- 一 ps命令
- 1 描述
- 2 主要参数
- 3 ps -ef
- 4 ps aux
- 5 用例
- 二 top命令
- 1 概述
- 2 功能说明
- 3 其他使用技巧
- 4 常用显示命令
一 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 -ef
和ps 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 用例
- 查看所有进程的命令,进程id,cpu占用,内存占用信息 ,并按照cpu占用排序:
ps axo cmd,pid,%cpu,%mem k %cpu
- 查看指定终端的进程:
ps -t pts/3
- 查看指定终端的进程:
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 | 进程优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
VIRT |
virtual memory usage 虚拟内存,单位kb。VIRT=SWAP+RES 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 |
RES |
resident memory usage 常驻内存,单位kb。RES=CODE+DATA 1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享 3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4、关于库占用内存的情况,它只统计加载的库文件所占内存大小 |
SHR |
shared 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 其他使用技巧
- 多U多核CPU监控:在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况。
- 高亮显示当前运行进程:敲击键盘“b”(打开/关闭加亮效果),“top”进程被加亮了,可以通过敲击“y”键关闭或打开运行态进程的加亮效果。
- 进程字段排序:默认进入top时,各进程是按照CPU的占用量来排序的,敲击键盘“x”(打开/关闭排序列的加亮效果)。
- 通过”shift + >”或”shift + <”可以向右或左改变排序列:按一次”shift + >”的效果图,视图现在已经按照%MEM来排序,再按一次按时间排。
- 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
进程监控命令ps和top(五)相关推荐
- linux 进程监控命令2——ps
1. ps简介 前面介绍的两个命令(who.w命令)都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题.要对进程进行监测和控制,首先 必须要了解当前进程的情况,也就是需要查看当前 ...
- linux进程管理 ps,Linux - 进程管理,ps与top
一个运行的程序,可能有多个进程. PID进程ID. UID启动进程的ID. 进程所属组GID. 进程的状态R运行.S睡眠.Z僵尸. 父进程管理子进程,父进程终止的时候子进程也会终止. 常用的组合为: ...
- Linux ps、top、free、uname命令
Linux ps.top.free.uname命令 Linux有很多查看系统运行时状态的命令,例如查看进程信息的ps和top,以及查看内存信息的free命令和操作系统信息的uname命令等. ps 全 ...
- linux系统监控命令汇总
零.Linux系统监控命令速查手册 命令 功能应用 用法举例 free 查看内存使用情况,包括物理内存和虚拟内存 free -h或free -m vmstat 对系统的整体情况进行统计 ...
- Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈
的性能有问题,总之,每到晚上挖站否的主机就出现了不稳定的情况,系统负载忽高忽低.利用服务器日志分析利器:ngxtop和GoAccess也能查出有一些IP一直在不断地扫描服务器端口还有WP后台. 但是, ...
- Linux 有关管理进程的命令小结
1.kill NAME kill - terminate a process (终止进程) SYNOPSIS kill [-signal] pid 说明: kill 给指定进程发送指定信号. 如果没有 ...
- linux暂停进程运行的按键组合是,Linux基础命令(五):进程——ps、top、jobs、bg、fg、kill、killall、shutdown...
目录 进程 查看进程 用 top 命令动态查看进程(相当于任务管理器) 中断进程 把进程放置到后台执行 进程返回到前台执行 (暂时)停止进程 信号 通过kill命令给进程发送信号 通过 killall ...
- linux之进程观察命令:ps和top
一.ps命令 (1)ps命令:ps命令输出的是当前查询状态下进程瞬间的状态信息.命令使用的语法如下: ps 参数 常用的参数如下: -A:列出所有的进程 -a:列出不和本终端有关的所有进程 -w:显示 ...
- Linux下,进程的相关知识,进程的消耗,常用信息,状态,静态查询命令ps,动态查询命令top
Linux下,进程的相关知识,进程的来源,去向,状态,静态查询命令ps 一.进程主要组成部分 0.没有执行的程序就是普通文本文件,将程序运行起来以后就是进程,进程又有以下组成部分 1.一个或多个文件 ...
最新文章
- web服务枚举组件不可用
- 计划学习研究模板引擎。学习stringtemplate先
- i7 8700 服务器系统,i7 8700k 云服务器6
- Android 抽屉布局
- threejs精灵(Sprite)
- 跟幼师谈恋爱什么梗_和懂你的人谈恋爱,比“秋天的第一杯奶茶”要甜
- c并非所有的代码路径都返回值_两行C语言代码播放音乐,就这么so easy!你学到了吗?...
- 初学者必学教程——JQuery的简介
- IOS transform的使用(移动,放大,旋转)
- 注意细节:Javascript中的变量作用域
- 【MCM-2017】2017年数学建模美赛题目原文及翻译-A (个人思路)
- 产品经理如何写好一份简历
- 逆转ISP,港科大陈启峰团队提出了可逆ISP
- 想用Charles抓包,某些app不让抓怎么办
- 课程学习:让神经机器翻译模型像人类一样学习
- canvas画布js代码实现大风车的动画
- sse 指令xmm寄存器和内存互相复制的问题
- SRM 590 DIV1
- 数据库系统 --- 关系数据库1
- 饥荒联机版连不上服务器_饥荒联机版常见问题汇总_饥荒联机版服务器无响应怎么办_牛游戏网攻略...