Linux—top命令详解
top命令可以对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的资源占用情况等信息。注:缓存(cache)是用来加速数据从硬盘中读取的,而缓冲(buffer)是用来加速数据写入硬盘的。默认进入top时,各进程是按照CPU的占用量来排序的。第二部分是第6行开始,显示系统中进程的信息。第一部分是前5行系统的资源使用状况。
·
top概念
top命令可以对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的资源占用情况等信息
top命令参数
基本格式
[root@localhost ~]# top [选项]
选项参数
-d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒
-b 使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中
-n 次数:指定 top 命令执行的次数。一般和"-"选项合用
-p 进程PID:仅查看指定 ID 的进程
-s 使 top 命令在安全模式中运行,避免在交互模式中出现错误
-u 用户名:只监听某个用户的进程
交互参数
默认进入top时,各进程是按照CPU的占用量来排序的
?/h 显示交互模式的帮助
Z、B、E、e 全局:'Z'颜色;'B'粗体;'E'/'e'摘要/任务内存规模
l、t、m 切换摘要: 'l' 加载平均值;'t'任务/CPU统计信息;'m'内存信息
0、1、2、3、I 切换:'0'零;'1/2/3'CPU 或 numa节点视图;'I'Irix模式
f、F、X 字段:'f'/'F'添加/删除/顺序/排序;'X’增加固定宽度
L、&、<、> 查找:'L'/'&'查找/再次;移动排序列: '<'/'>'左/右
R、H、V、J 切换:'R'排序;'H'线程;'V'森林视图;'J'数字对齐
c、i、S、j 切换:'c'Cmd名称/行;'i'空闲;'S'时间;'j' Str justify
x、y 切换高亮显示:'x'排序字段;'y'正在运行的任务
z、b 切换:'z'彩色/单色;'b'粗体/反转(仅当'x'或'y')
u、U、o、O 筛选条件:'u'/'U'有效/任何用户;'o'/'O'其他标准
n、#、^O 设置:显示'n'/'#'个最大任务数;显示:Ctrl+'O'其他筛选器
C、… 切换滚动坐标信息:上、下、左、右、确定、结束
k、r 操纵任务:'k'杀掉,9是中止;'r'按 PID 重设优先级
d or s 设置更新间隔
W,Y 写入配置文件'W';检查其他输出'Y'
P 按照 CPU 的使用率排序,默认就是此选项
M 按照内存的使用率排序
N 按照 PID 排序
T 按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序
q 退出 top 命令
操作示例
[root@localhost /]# top
top - 21:03:36 up 22:01, 2 users, load average: 0.04, 0.09, 0.08
Tasks: 100 total, 1 running, 99 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 : 995676 total, 124852 free, 621456 used, 249368 buff/cache
KiB Swap: 2097148 total, 2089468 free, 7680 used. 225972 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28294 root 20 0 0 0 0 S 0.3 0.0 0:02.56 kworker/0:2
1 root 20 0 128184 5500 3376 S 0.0 0.6 0:10.92 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:01.58 ksoftirqd/0
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:03.89 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
top 命令的输出内容是动态的,默认每隔 3 秒刷新一次,运行结果分为两部分:
第一部分是前5行系统的资源使用状况
第二部分是第6行开始,显示系统中进程的信息
命令字段说明
第一行:任务信息队列
top - 21:03:36 up 22:01, 2 users, load average: 0.04, 0.09, 0.08
- top:系统当前时间
- up:系统运行时间
- users:当前登录用户数
- load average:系统平均负载,包含三个值,分别表示一分钟、五分钟、十五分
钟内正在等待CPU处理的进程队列情况
第二行:进程信息
Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie
- Tasks:系统中的进程总数
- running:正在运行的进程总数
- sleeping:正在休眠的进程数
- stopped:停止的进程数
- zombie:僵尸进程数,如果不是0,则需要检查僵尸进程
第三行:CPU 信息
%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
- us:用户空间的占用率
- sy:内核空间的占用率
- ni:改变过优先级的用户进程占用率
- id:空闲 CPU 的占用率
- wa: 等待输入/输出进程的占用率
- hi: 硬中断的占用率(硬中断是硬盘、网卡等硬件设备发送给CPU的中断消息)
- si:软中断的占用率(软中断是由程序发出的中断)
- st:有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比
第四行:物理内存信息
KiB Mem : 995676 total, 124852 free, 621456 used, 249368 buff/cache
- total:物理内存总量
- free:空闲内存量
- used:使用的内存量
- buffer/cache:用作内核缓冲/缓存的内存量
第五行:交换分区信息
KiB Swap: 2097148 total, 2089468 free, 7680 used. 225972 avail Mem
- total:交换区内存总量
- free:空闲交换区总量
- used:使用的交换区总量
- buffer/cache:缓冲/缓存的交换区总量
注:缓存(cache)是用来加速数据从硬盘中读取的,而缓冲(buffer)是用来加速数据写入硬盘的
第六行:进程信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28294 root 20 0 0 0 0 S 0.3 0.0 0:02.56 kworker/0:2
1 root 20 0 128184 5500 3376 S 0.0 0.6 0:10.92 systemd
默认参数
PID 进程id
USER 该进程所属的用户
PR 优先级,数值越小优先级越高
NI 优先级,负值表示高优先级,正值表示低优先级
VIRT 使用虚拟内存的大小,单位为 KB,VIRT=SWAP+RES
RES 使用物理内存的大小,单位KB,RES=CODE+DATA
SHR 共享内存大小,单位KB
S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
%CPU 占用 CPU 的百分比
%MEM 占用内存百分比
TIME+ 使用CPU的时间
COMMAND 进程的命令名
可选参数
PPID 父进程id
GROUP 进程所有者的组名
SWAP: 进程使用的虚拟内存中被换出的大小
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志
若有不足或者不正之处,欢迎指正批评,感激不尽!如果有疑问欢迎留言,绝对第一时间回复!
更多推荐
已为社区贡献2条内容
所有评论(0)