Linux系统top命令结果分析

Top是Linux服务端研发的最常用命令之一,我们经常要关注线上服务器的状态。Top命令可以反应出当前机器的配置,用户进程,还有cpu,内存等使用量,以及load average负载。

机器的负载,cpu,内存等使用情况对该机器上运行的进程影响很大,在一个高负载的机器上运行的进程也很危险,长期高负荷运行的机器可能宕机,就像长期处于高压力下的人可能生病一样。

下面我们就来分析一下top命令的结果。

Linux系统top命令结果分析

负载load average

上面这张图就是我截取机器上的一个top命令结果,最上面一行是总览up后面紧接的是机器持续运行的时间,对图中就是166天17小时17分钟。user表示用户账号数。

load average就是负载情况了,分别是最近1分钟,最近5分钟,最近15分钟的机器平均负载情况。一般来说,平均负载超过了机器核数就很高了,超过0.75*core(机器核数)就需要注意了。

任务Task

Task后面是机器进程相关信息,total是总进程数。running是正在运行中的进程,sleeping是休眠的进程,stopped是停止的进程,zombie是僵尸进程。

核Cpus

多核机器可以通过按1显示更多的cpu信息。

us表示用户占用的cpu百分比,sy则表示系统占用的。

ni表示用户进程改变过优先级的进程占用cpu。

id表示cpu idle即空闲比例,这个值越大说明机器越闲。

wa表示等待输入输出IO的cpu占比。

hi表示服务于硬件中断所耗费的时间。

si表示CPU软中断占用的时间

st表示虚拟机被hypervisor(虚拟机监视器)偷走的时间。

内存Mem

内存也是一个重要的指标。total是总机器内存,free是空闲的物理内存,used是被使用的物理内存,buff/cache表示用于内核缓存的内存量。

交换分区Swap

total表示总交换分区量,free表示空闲交换分区,used表示被使用的交换分区,avail表示可用的交换分区量。

其他

PID:进程id,process id。

USER:用户

PR:priority 优先级

NI: nice, 负值表示高优先级,正值表示低优先级,越大越好说话

VIRT:虚拟内存总量

RES:进程使用的,还未被换出的内存大小

SHR:共享内存大小

S:进程状态,D不可中断的睡眠状态,S睡眠,R运行

TIME:运行时间

COMMAND: 运行命令。

 

总结

top命令是linux机器很重要的命令,服务端程序员还可以配合free查看内存,df命令查看磁盘。

Linux系统top命令结果分析

这个命令可以查看当前系统打开的文件句柄数,以及最大可以打开的文件句柄。这个命令也很重要,通常如果有bug的程序无限制的打开文件,导致文件句柄被占满,那么就可能导致无法登录机器,甚至宕机。

欢迎关注微信公众号『野狐』

相关文章: