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:命令行
- 参考资料
来源于网络
- 关注公众号一起学习——无涯的计算机笔记