top命令经常用来监控Linux的系统状态,如CPU、内存的使用情况。下面通过一个运行中的Web服务器的top监控截图,讲述top视图中各种数据的含义,以及视图中各进程(任务)的字段的排序。

top进入视图,如图4.17所示


图4.17

下面结合该视图讲解各个数据的含义。

  • 第一行:10:01:23——当前系统时间;126 days,14:29——系统已经运行了126天14小时29分钟(在这期间没有重启过);2 users——当前有两个用户登录系统;load average:1.15,1.42,1.44——load average后面的3个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5,则表明系统正在超负荷运转。

  • 第二行:Tasks——任务(进程),系统现在共有183个进程,其中处于运行状态的有1个,182个正在休眠(sleep),处于stopped状态的有0个,处于zombie(僵尸)状态的有0个。

  • 第三行:CPU状态。6.7% us——用户空间占用CPU的百分比;0.4% sy——内核空间占用CPU的百分比;0.0% ni——改变过优先级的进程占用CPU的百分比;92.9% id——空闲CPU百分比;0.0% wa——I/O等待占用CPU的百分比;0.0% hi——硬中断(Hardware IRQ)占用CPU的百分比;0.0% si——软中断(Software Interrupts)占用CPU的百分比。

  • 第四行:内存状态。8306544k total——物理内存总量(8GB);7775876k used——使用中的内存总量(7.7GB);530668k free——空闲内存总量(530MB);79236k buffers——缓存的内存量(79MB)。

  • 第五行:Swap交换分区。2031608k total——交换区总量(2GB);2556k used——使用的交换区总量(2.5MB);2029052k free——空闲交换区总量(2GB);4231276k cached——缓冲的交换区总量(4GB)。

    这里需要说明的是,不能用Windows的内存概念理解这些数据,如果按Windows的方式,则此台服务器“危矣”:8GB的内存总量只剩下530MB的可用内存。Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只简单说一些和传统概念(Windows)的区别。第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存并非都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在Linux上free内存会越来越少,但不用为此担心。如果出于习惯去计算可用内存数,这里有一个近似的计算公式:第四行的free+第四行的buffers+第五行的cached。依照这个公式,此台服务器的可用内存为:530668+79236+4231276=4.7GB。

    对于内存监控,在top里我们要时刻监控第五行Swap交换分区的used,如果这个数值在不断地变化,则说明内核在不断进行内存和Swap的数据交换,这表示真正的内存不够用了。

  • 第六行是空行。

  • 第七行以下:各进程(任务)的状态监控。PID——进程ID;USER——进程所有者;PR——进程优先级;NI——nice值,负值表示高优先级,正值表示低优先级;VIRT——进程使用的虚拟内存总量,单位为KB(VIRT=SWAP+RESRES——进程使用的、未被换出的物理内存大小,单位为KB);RES=CODE+DATASHR——共享内存大小,单位为KB;S——进程状态(D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程);%CPU——上次更新到现在的CPU时间占用百分比;%MEM——进程使用的物理内存百分比;TIME+——进程使用的CPU时间总计,单位为1/100秒;COMMAND——进程名称(命令名/命令行)。

多核CPU监控:

在top基本视图中,按键盘数字“1”,即可监控每个逻辑CPU的状态,如图4.18所示。


图4.18

观察图4.18,服务器有16个逻辑CPU,实际上是4个物理CPU。

进程字段排序:在进入top时,各进程默认是按照CPU的占用量来排序的,在【top视图01】中进程ID为14210的Java进程排在第一位(CPU占用100%),进程ID为14183的Java进程排在第二位(CPU占用12%)。

可通过键盘指令来改变排序字段。比如,想监控哪个进程占用MEM最多,方法如下:按“b”键(打开/关闭加亮效果),top视图变化如图4.19所示。

图4.19

我们发现进程ID为10704的“top”进程被加亮了,top进程就是视图第二行显示的唯一的运行态(running)的那个进程,可以通过按“y”键关闭或打开运行态进程的加亮效果。

按“x”键(打开/关闭排序列的加亮效果),top视图变化如图4.20所示。



转载自:https://www.sohu.com/a/161914037_738832