TOP命令
Linux top命令用于实时显示 process 的动态。
使用权限:所有使用者。
下面解释这些都代表什么
第一行、概述
HH:mm:ss:当前的系统时间。
up xxx days, HH:mm:从本次开机到现在经过的时间。
x user:当前有几个用户登录到该机器。
load average:系统1分钟、5分钟、15分钟内的平均负载值。
第二行、进程计数
total:进程总数。
running:正在运行的进程数,对应状态TASK_RUNNING。
sleeping:睡眠的进程数,对应状态TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE。
stopped:停止的进程数,对应状态TASK_STOPPED。
zombie:僵尸进程数,对应状态TASK_ZOMBIE。
第三行、CPU使用率
us:进程在用户空间(user)消耗的CPU时间占比,不包含调整过优先级的进程。
sy:进程在内核空间(system)消耗的CPU时间占比。
ni:调整过用户态优先级的(niced)进程的CPU时间占比。
id:空闲的(idle)CPU时间占比。
wa:等待(wait)I/O完成的CPU时间占比。
hi:处理硬中断(hardware interrupt)的CPU时间占比。
si:处理软中断(software interrupt)的CPU时间占比。
st:当Linux系统是在虚拟机中运行时,等待CPU资源的时间(steal time)占比。
第四、五行、物理内存和交换空间
以物理内存为例。free命令也会打印出类似的信息。
total:内存总量。
free:空闲内存量。
used:使用中的内存量。
buff/cache:缓存和page cache占用的内存量。
以下所有行,显示进程详细信息
这里显示的数据列是可以改的,默认会显示如图中的12列。其含义分别如下:
PID:进程ID。
USER:进程所有者的用户名。
PR:从系统内核角度看的进程调度优先级。
NI:进程的nice值,即从用户空间角度看的进程优先级。值越低,优先级越高。
VIRT:进程申请使用的虚拟内存量。
RES:进程使用的驻留内存(即未被swap out的内存)量。
SHR:进程使用的共享内存量。
S:进程状态。R=running,S=interruptible sleeping,D=uninterruptible sleeping,T=stopped,Z=zombie。
%CPU:进程在一个更新周期内占用的CPU时间比例。
%MEM:进程占用的物理内存比例。
TIME+:进程创建后至今占用的CPU时间长度。
COMMAND:运行进程使用的命令。
在top命令的界面中,可以输入一些指令实现交互性的操作,下面列出一些比较常用的交互性操作。
CTRL+L:刷新整个屏幕,重新开始显示。
h:显示帮助。
q:退出top程序。
空格:立即刷新信息。
k:杀掉进程。输入k之后,会提示用户输入PID及要发送哪种信号。
r:重新设置进程优先级,即renice。输入r之后,会提示用户输入PID及新的nice值。
s:改变刷新周期。输入s之后,会提示用户输入新的刷新周期,单位为秒。
n:改变进程列表中的显示数量。
f:添加或删除进程列表中的列。输入f之后会显示字母与列的映射表,再输入对应字母就可以开关相应的列。
c:在COMMAND列中切换显示命令名和完整的命令行。
u:指定在进程列表中只显示对应用户的进程。
l:切换显示界面中第一行信息(时间和平均负载)。
t:切换显示界面中第二、三行信息(进程和CPU统计)。
m:切换显示界面中第四、五行信息(内存和交换空间)。
1:切换展开CPU统计信息。展开后,会分别显示CPU每个逻辑核心的占用。
N:按PID对进程排序。
M:按%MEM对进程排序。
P:按%CPU对进程排序。
T:按TIME+对进程排序。
H:切换在进程列表中显示所有线程信息。
——————————————————————————————————————————
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
###实例
显示进程信息
# top
显示完整命令
# top -c
以批处理模式显示程序信息
# top -b
以累积模式显示程序信息
# top -S
设置信息更新次数
# top -n 2
//表示更新两次后终止更
新显示设置信息更新时间
# top -d 3
//表示更新周期为3秒显示
指定的进程信息
# top -p 139
//显示进程号为139的进程信息,CPU、内存占用率等
显示更新十次后退出
# top -n 10
使用者将不能利用交谈式指令来对行程下命令
# top -s
PS命令
概述
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
使用
用法:ps [ 参数 ]
参数说明:
- -A 显示所有进程(等价于-e)(utility)
- -a 显示一个终端的所有进程,除了会话引线
- -p pid 进程使用cpu的时间
示例
ps -aux
//最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,
//然后再对特定的进程进行操作。
ps -ef
ps -l
pmap
名称:
pmap - report memory map of a process(查看进程的内存映像信息)
用法
pmap [ -x | -d ] [ -q ] pids…
pmap -V
选项含义
-x extended Show the extended format. 显示扩展格式
-d device Show the device format. 显示设备格式
-q quiet Do not display some header/footer lines. 不显示头尾行
-V show version Displays version of program. 显示版本
扩展格式和设备格式域:
Address: start address of map 映像起始地址
Kbytes: size of map in kilobytes 映像大小
RSS: resident set size in kilobytes 驻留集大小
Dirty: dirty pages (both shared and private) in kilobytes 脏页大小
Mode: permissions on map 映像权限: r=read, w=write, x=execute, s=shared, p=private (copy on write)
Mapping: file backing the map , or '[ anon ]' for allocated memory, or '[ stack ]' for the program stack. 映像支持文件,[anon]为已分配内存 [stack]为程序堆栈
Offset: offset into the file 文件偏移
Device: device name (major:minor) 设备名