top命令输出
top - 09:14:21 up 26 min, 1 user, load average: 0.45, 0.50, 0.64
任务: 267 total, 2 running, 264 sleeping, 0 stopped, 1 zombie
%Cpu(s): 4.0 us, 1.9 sy, 0.0 ni, 93.7 id, 0.1 wa, 0.0 hi, 0.3 si, 0.0 st
MiB Mem : 15849.1 total, 10277.2 free, 1976.5 used, 3595.5 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 13266.3 avail Mem
进程号 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
2479 ngx 20 0 5246028 317628 123120 S 5.0 2.0 0:55.14 gnome-shell
2318 ngx 20 0 912536 123160 89152 S 4.7 0.8 0:29.59 Xorg
第一行
top - 09:14:21 up 26 min, 1 user, load average: 0.45, 0.50, 0.64
- top:当前时间
- up:机器运行了多少时间
- users:当前有多少用户
- load average:分别是过去1分钟,5分钟,15分钟的负载
一个CPU在一个时间片里面只能运行一个进程,CPU核数的多少直接影响到这台机器在同时间能运行的进程数。所以一般来说Load Average的数值别超过这台机器的总核数,就基本没啥问题。
第二行
任务: 267 total, 2 running, 264 sleeping, 0 stopped, 1 zombie
- Tasks:当前有多少进程
- running:正在运行的进程
- sleeping:正在休眠的进程
- stopped:停止的进程
- zombie:僵尸进程
running越多,服务器自然压力越大。
第三行
%Cpu(s): 4.0 us, 1.9 sy, 0.0 ni, 93.7 id, 0.1 wa, 0.0 hi, 0.3 si, 0.0 st
- us: 用户进程占用的CPU时间百分比
- sy: 系统进程占用的CPU时间百分比
- ni: 运行niced用户进程的时间百分比
- id: 空闲CPU时间百分比
- wa: 等待输入输出的CPU时间百分比
- hi: 硬件的中断请求时间百分比
- si: 软件的中断请求时间百分比
- st: hypervisor从当前vm偷取的CPU时间百分比
第四行
MiB Mem : 15849.1 total, 10277.2 free, 1976.5 used, 3595.5 buff/cache
- total:内存总量
- free:空闲内存
- used:使用的
- buffer/cache:写缓存/读缓存
第四第五行分别是内存信息和swap信息。所有程序的运行都是在内存中进行的,所以内存的性能对与服务器来说非常重要。不过当内存的free变少的时候,其实我们并不需要太紧张。真正需要看的是Swap中的used信息。Swap分区是由硬盘提供的交换区,当物理内存不够用的时候,操作系统才会把暂时不用的数据放到Swap中。所以当这个数值变高的时候,说明内存是真的不够用了。
PID USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
PR - 优先级
RES - 驻留内存大小(KiB)
NI - nice value
SHR - 共享内存大小(KiB)
S - 进程状态
- D 不间断睡眠
- I 空闲
- R 运行
- S 睡眠
- T 由控制信息引起的停止
- t 因调试引起的停止
- Z 僵尸进程
VIRT - 进程使用的全部的虚拟内存大小。