top 命令用于实时显示系统资源使用情况。它可以显示系统摘要信息,以及内核当前正在管理的进程或线程的列表。
top 命令可以实时动态地查看系统的整体运行情况,是一个非常实用的系统性能和运行信息的监测工具。通过 top 命令所提供的互动式界面,用热键可以管理。
Linux top 命令
相对于ps为某个时间点的进程状态,top则可以持续的检测进程进行的状态。默认更新进程资源的时间为5秒。可以使用-d来进行修改。top命令默认使用CPU的使用率作为排序的依据,如果要使用内存使用率的话,则按下M键。恢复P键
语法
top [options]
常用参数
-b #以批处理模式操作
-c #显示完整的治命令
-d #屏幕刷新间隔时间
-I #忽略失效过程
-s #保密模式
-S #累积模式
-i<时间> #设置间隔时间
-u<用户名> #指定用户名
-p<进程号> #指定进程
-n<次数> #循环显示的次数
top交互命令
h #显示帮助信息界面
k #终止一个进程
i #忽略闲置和僵死进程,这是一个开关式命令
q #退出程序
r #重新安排一个进程的优先级别
S #切换到累计模式
s #改变两次刷新之间的延迟时间(单位为s),默认值是5s
f或者F #从当前显示中添加或者删除项目
o或者O #改变显示项目的顺序
l #切换显示平均负载和启动时间信息
m #切换显示内存信息
t #切换显示进程和CPU状态信息
c #切换显示命令名称和完整命令行
M #根据驻留内存大小进行排序
P #根据CPU使用百分比大小进行排序
T #根据时间/累计时间进行排序
w #将当前设置写入~/.toprc文件中
应用举例
top -c查看系统整体运行信息
top - 00:44:49 up 565 days, 12:38, 2 users, load average: 0.03, 0.09, 0.13
Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.8 us, 0.8 sy, 0.0 ni, 96.0 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 3881692 total, 118724 free, 1708796 used, 2054172 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1892868 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21399 work 20 0 6004700 1.296g 6752 S 3.7 35.0 639:24.06 /home/work/java-current/bin/java -Dsun.misc.URLClassPath.disableJarChecking=+
4306 root 10 -10 137372 14500 5284 S 2.0 0.4 2303:51 /usr/local/aegis/aegis_client/aegis_11_17/AliYunDun
24092 root 20 0 795856 40192 7648 S 1.3 1.0 33:05.19 /root/filebeat-7.4.2-linux-x86_64/filebeat -e -c /root/filebeat-7.4.2-linux-+
9 root 20 0 0 0 0 S 0.3 0.0 365:09.14 [rcu_sched]
1191 root 20 0 2526540 86844 3320 S 0.3 2.2 4146:08 /usr/local/cloudmonitor/jre/bin/java -Djava.compiler=none -XX:-UseGCOverhead+
1755 work 20 0 84428 29432 996 S 0.3 0.8 1554:04 nginx: worker process
1756 work 20 0 84296 29436 1000 S 0.3 0.8 1479:33 nginx: worker process
1 root 20 0 53708 3144 1852 S 0.0 0.1 7:40.55 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
2 root 20 0 0 0 0 S 0.0 0.0 0:00.14 [kthreadd]
3 root 20 0 0 0 0 S 0.0 0.0 6:04.15 [ksoftirqd/0]
上述结果信息详细说明
top - 05:59:56 #当前系统时间
up 1 day #系统已经运行了1天
1 user #当前登录用户个数
load average: 0.06, 0.03, 0.05 #系统负载信息
Tasks:
92 total #总进程数
2 running #正在运行的进程数
90 sleeping #休眠的进程数
0 stopped #停止的进程数
0 zombie #冻结的进程数
%Cpu(s):
0.0 us #用户空间占用CPU的百分比
0.3 sy #内核空间占用CPU的百分比
0.0 ni #用户进程空间内改变过优先级的进程占用CPU百分比
99.7 id #空闲CPU百分比
0.0 wa #等待输入输出的CPU时间百分比
0.0 hi #硬中断占用CPU的百分比
0.0 si #软中断占用CPU的百分比
0.0 st #虚拟机占用百分比
KiB Mem :
995684 total #物理内存的总量
473120 free #剩余内存的总量
124960 used #已使用内存的总量
397604 buff/cache #内核缓存所使用内存的量
KiB Swap:
2097148 total #交换分区的总量
2097148 free #交换分区剩余的总量
0 used #交换分区已使用的总量
698120 avail Mem #可用内存总量
PID #进程id
USER #进程所有者
PR #任务的调度优先级,范围0-31,数值越低,优先级越高
NI #nice值,范围-20到+19,用于调整进程优先级
VIRT #进程所使用的虚拟内存总量(单位 KB)
RES #任务已使用的未交换物理内存(单位 KB)
SHR #共享内存大小(单位 KB)
S #进程状态
' D '=不间断的睡眠
' R '=运行
' S '=睡眠
' T '=被跟踪或停止的
' Z '=僵尸
%CPU #CPU的使用率
%MEM #内存使用率
TIME+ #CPU时间
COMMAND #进程名称(命令名/命令行),显示用于启动任务的命令行或关联程序的名称。
将top命令执行两次,然后将信息存储
work@authority-api-v1-6944b5848b-6x5d2:~$ top -b -n 2 > /tmp/top.txt
查看指定进程
work@authority-api-v1-6944b5848b-6x5d2:~$ echo $$
1519
work@authority-api-v1-6944b5848b-6x5d2:~$ top -d 10 -p 1519
top - 01:00:33 up 256 days, 9:29, 0 users, load average: 17.69, 12.52, 12.51
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 39.3 us, 12.0 sy, 0.0 ni, 45.7 id, 2.5 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 19706059+total, 2849084 free, 94349680 used, 99861824 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 10241943+avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1519 work 20 0 21132 4352 2608 S 0.0 0.0 0:00.05 bash
引用