

先睹为快:
1. 执行完top命令之后,显示结果如下图,参数较多,我们细细道来
我把开头的五行截图下来:

load average详解
load average: 指的是平均负载,在Linux当中,就是系统负载的平均值,它主要是将正在运行的线程对系统的需求显示为平均运行数和等待线程数。
如果平均值为0.0 表示系统处于空闲状态。
一般很多工具在使用这个load average的时候都会选择1分钟,5分钟和15分钟的平均值, 这里有个技巧:
-** 如果1min平均值高于5分钟或者15分钟的平均值,表示负载在增加 **
如果1分钟平均值低于5分或者15分钟的平均值,表示负载在减少。
通过上面的技巧我们很容易判断当前负载是在持续增加还是减少,如果持续增加我们只需要判断当前是否达到了最大负载的阈值, 持续减少,我们几乎不用再去介入,当然你想去研究下为什么15分钟之前的负载突然增高了,也是可以的。
load averages反应的是cpu的负载,其实是不准确的, 准确的说,load averages反应的是System load averages. 检测的是正在运行和等待运行的线程数,包括cpu,磁盘,不间断锁等等。
我们可以这么理解:
当load averages较高的情况下,说明等待运行的任务比较低多,因此轮到该任务运行的等待时间就会出现较大延迟,然后反应在负载上就成了负载变高经验值:单核心,1分钟的系统平均负载不要超过3,就是ok的。所以:
[root@zmgaosh ~]# cat /proc/cpuinfo | grep ‘processor’ | sort | uniq | wc -l 2








其实知道了这三个值代表什么也并没什么用,最重要的是需要知道下面这句话:VIRT值最高的进程就是内存使用最多的进程如果服务器特别卡,你用top排查,那个VIRT数值最大的进程就是元凶,抓住它VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小 3、计算某个进程所占的物理内存大小公式:RES – SHR 4、swap
out后,它将会降下来



top -d 5
4) 监控指定进程,比如监控PID为1225的进程[root@zmgaosh ~]# top -p 1225
总结:
top 命令是我们日常工作中用的比较多的一个命令, 学会看几个重要的参数即可,比如load averages,比如查看占用内存最多的进程等我是高胜寒,一个在教培行业不忘初心的人,本文首发于CSDN,点击