常见的系统监控命令有
uptime、free、vmstat、mpstat、iostat、sar、iotop等
本期我们介绍前三个
一、uptime
显示系统的运行时间和系统的平均负载
显示信息的顺序:现在时间 系统运行时间 目前有多少登录用户 系统过去的1分钟、5分钟、15分钟内的平均负载
二、free
显示系统当前未使用的内存、已使用的内存、被内核使用的内存缓存区
-h 转换单位为MB
三、vmstat(显示虚拟内存状态)
可以展现给定时间间隔的服务器的状态值
包括CPU使用率、内存使用、虚拟内存交换情况、IO读写情况
字段解释:
1.procs
r:表示运行和等待CPU时间片的进程数
b:表示在等待资源的进程数
2.memory
swpd:表示切换到内存交换区的内存大小,就是虚拟内存已使用的大小
free:当前空闲内存
buff:缓冲大小
cache:缓存大小
3.swap
si:每秒从磁盘读入虚拟内存的大小(内存进入内存交换区的内存大小)
so:内存交换区进入内存的内存大小
4.io
bi:从块设备每秒读取的块数量
bo:每秒写到块设备的块数量
5.system
in:每秒的中断数,包括时钟
cs:每秒产生的上下文切换次数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
6.CPU
us:表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法
sy:表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能存在CPU瓶颈id:表示CPU处在空间状态的时间百分比
wa:表示IP等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者监控器的贷款瓶颈(主要是块操作)造成的
综上所述,如果评估CPU,需要重点关注procs项的r列值和CPU的us、sy、wa列的值
参数解释:
-V 显示vmstat版本信息
-n 只在开始时显示一次各自段名称
-a 显示活跃和非活跃内存
-d 显示各个磁盘相关统计信息
-D 显示磁盘总体信息
-p 显示指定磁盘分区统计信息
-s 显示内存相关统计信息及多种系统活动数量
-m 显示slabinfo
-t 在输出信息的时候也将时间一并输出出来
-S 使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024bytes)
delay 刷新时间间隔。如果不指定,只显示一条结果
count 刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷