每天一个常用命令(3):top

216 阅读4分钟

top 可以查看当前系统资源消耗状态,也是非常常用的命令。

  • 语法
[hamming@VM_0_15_centos ~]$ top [选项]
  • 选项
-b 使用批处理模式执行
-c 输出每一个进程的完整命令,-bc 选项较常用
-d<间隔时间> 设置 top 监控进程的间隔时间,以秒为单位
-n<更新次数> 设置 top 监控信息的更新次数
-p<进程号> 指定 top 监控的进程
-u<用户名> 只监控指定用户所执行的进程
  • 示例
[hamming@VM_0_15_centos tmp]$ top
top - 23:26:48 up 877 days, 12:33,  2 users, load average: 0.00, 0.06, 0.12
Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie
%Cpu(s): 37.5 us,  6.2 sy,  0.0 ni, 56.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882892 total,    71432 free,  1117080 used,   694380 buff/cache
KiB Swap:  2047996 total,   740676 free,  1307320 used.   595484 avail Mem

PID USER     PR NI   VIRT   RES   SHR S %CPU %MEM     TIME+ COMMAND
7863 root      20   0  821384  46040   2812 S 18.8  2.4   1050:56 prometheus_demo
22432 root      20   0 3045444  85800  13368 S 12.5  4.6   1114:26 prometheus
10372 root      20   0  453844  10628   2120 S  6.2  0.6  15184:35 mongod
19619 root      20   0 1239016  84960  13020 S  6.2  4.5   1754:15 YDService
   1 root      20   0  191256   2800   1452 S  0.0  0.1 301:10.74 systemd
   2 root      20   0       0      0      0 S  0.0  0.0   0:23.85 kthreadd
   3 root      20   0       0      0      0 S  0.0  0.0  35:05.29 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.01 migration/0

# 结果分析
# 第一行
top - 23:26:48 up 877 days, 12:33,  2 users, load average: 0.00, 0.06, 0.12
top:名称
23:26:48:系统当前时间
up 877 days, 12:33:系统以及运行的时间
2 users:当前在线用户数
load average: 0.00, 0.06, 0.12:系统一定时间内的平均负载,分别是1分钟、5分钟、15分钟。

# 主要关注load average这个值,所谓系统负载就是:在一段时间内,
# CPU正在处理以及等待CPU处理的进程数之和。系统在同一时间运行
# 的进程数和系统CPU核数相关,一般来说Load Average的数值别超
# 过这台机器的总核数,就没什么问题。

# 第二行
Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie
Tasks: 112 total:当前总共有 112 个任务,也就是 112 个进程
1 running:正在运行进程数
111 sleeping:睡眠进程数
0 stopped:停止进程数
0 zombie:僵尸进程数

# 第三行
%Cpu(s): 37.5 us,  6.2 sy,  0.0 ni, 56.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu(s): cpu 时间使用率
37.5 us:用户态 cpu 使用率,越高越好
6.2 sy:内核态 cpu 使用率,越低越好
0.0 ni:占用CPU时间的百分比(ni是nice的缩写,进程用户态的优先级)
56.2 id:空闲CPU占用率,等待进程运行  
0.0 wa:等待输入输出的CPU时间百分比
0.0 hi:CPU硬中断时间百分比
0.0 si:CPU软中断时间百分比
0.0 st:被强制等待(involuntary wait)虚拟 CPU 的时间

# 第四行
KiB Mem :  1882892 total,    71432 free,  1117080 used,   694380 buff/cache
MiB Mem:内存
1882892 total:物理内存总量
71432 free:空闲内存量
1117080 used:已使用的内存量
694380 buff/cache:用作内核缓存的内存量

# 第五行
KiB Swap:  2047996 total,   740676 free,  1307320 used.   595484 avail Mem
MiB Swap:交换空间(虚拟内存,当内存不足的时候,把一部分硬盘空间虚拟成内存使用)
2047996 total:交换区总量
740676 free:空闲交换区总量
1307320 used:使用的交换区总量
595484 avail Mem:可用于启动一个新应用的内存(物理内存)

# 第六行 进程信息
PID USER     PR NI   VIRT   RES   SHR S %CPU %MEM     TIME+ COMMAND
ID:进程id
USER:进程所有者
PR:进程的优先级,越小优先级越高
NI:nice值,负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存,单位是kb
RES:进程使用的物理内存,单位kb
SHR:进程使用的共享内存,单位kb
S:进程状态(S表示休眠,R表示正在运行, Z表示僵死状态,N表示该进程优先值为负数,I表示空闲状态)
%CPU:进程占用的CPU使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:进程使用的CPU时间总计,单位1/100秒
COMMAND:命令行
  • 参考资料

来源于网络

  • 关注公众号一起学习——无涯的计算机笔记