本帖最后由 CQxxk 于 2019-10-8 12:08 编辑
目前越来越多的客户将服务器部署在超融合上,有时客户经常会反馈业务异常,或者卡慢的问题,在排查时通常涉及到Linux服务器的检查,本系列将介绍Linux常用命令,本次介绍的是top命令。
top命令 top 命令用于动态地监视进程活动与系统负载等信息。 首先先看一下top命令的执行结果: 可以看到top命令默认返回的内容很多,那么各项代表什么内容,我们需要重点专注哪些内容呢?我们依次来看: 第 1 行 分别表示:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5分钟、15 分钟内的平均值,数值越小意味着负载越低)。 通常我们需要重点关注load average这个参数,它表示CPU正在处理及等待CPU处理的进程数之和,通常情况需要关注5分钟、15分钟的平均值,当虚拟机多核心时,通常这个数值除以CPU核心数小于3时我们认为当前服务器的负载比较正常。那么如何判断虚拟机有多少个核心呢?可以使用mpstat -P ALL命令查看,下图演示效果,对该命令本处不做讲解。 第 2 行 分别表示:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。 此处通常需要关注是否存在僵死的进程,即zombie数值是否为0。 第 3 行 分别表示:用户占用CPU时间百分比、系统内核占用CPU时间百分比、改变过优先级的进程占用CPU时间百分比、空闲的CPU时间百分比、等待I/O的CPU时间百分比、CPU硬中断时间百分比、CPU软中断时间百分比等。 此处通常需要关注空闲的CPU百分比%id,等待I/O的CPU时间百分比%wa,%id数值越大表示CPU越空闲,%wa数值越高,说明IO延时越高,因此需要重点关注。 第 4 行、第五行 分别表示:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。 虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。 以上两行主要表示系统内存使用状况,在检查服务器负载时需要特别关注Swap交换分区的使用情况,Swap交换分区是从物理磁盘划出来的一部分空间,当物理内存不足时会把内存中暂时不用的数据交换出去,放在SWAP分区中。因此可以通过内存空闲量以及是否使用交换分区来判断物理内存是否足够。 第六行 各列分别表示: PID (进程ID) USER (进程所有者的用户名) PR (进程优先级) NI (nice值。负值表示高优先级,正值表示低优先级) VIRT (进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES) RES (进程使用的未被换出的物理内存大小,单位kb) SHR (共享内存大小,单位kb) S (进程状态,D=不可中断的睡眠状态 、R=运行、 S=睡眠 、T=跟踪/停止、 Z=僵尸进程) %CPU (上次更新到现在的CPU时间占用百分比) %MEM (进程使用的物理内存百分比) TIME+ (进程使用的CPU时间总计,单位1/100秒) COMMAND (进程名称[命令名/命令行]) 小技巧 1、当虚拟机或者服务器多核时,打开top命令后,按数字1可以详细展示每颗CPU的使用情况: 2、打开top窗口后,M可以按照内存占用对进程进行排序 3、打开top窗口后,P可以按照CPU使用情况对进程进行排序
|