服务器诊断常用命令
服务器诊断常用命令
一、TOP命令
二、vmstat
查看 CPU 使用情况的话,常用的命令就是 vmstat 。
一般 vmstat 工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔,单位是秒,第二个参数是采样的次数,例如:vmstat -n 3 5
意思就是隔 3 秒取样一次,一共取样 5 次
其中主要关注 procs 和 cpu 这两个参数
procs :
r :运行和等待 CPU 时间片的进程数,一般来说整个系统的运行队列不要超过总核数的 2 倍,要不然系统压力太大了
b : 等待资源的进程数,比如正在等待磁盘 IO ,网络 IO 这种
cpu :
us :用户进程消耗 CPU 时间百分比, us 值高的话,说明用户进程消耗 CPU 时间比较长,如果长期大于 50% 的话,那就说明程序还有需要优化的地方
sy :内核进程消耗的 CPU 时间百分比
us + sy 参考值为 80% ,如果大于 80% 的话,说明可能存在 CPU 不足
三、free
它主要有三个命令:free free -g free -m ,推荐使用 free -m
其中:free 命令运行结果显示的非常不友好,看到 3216364
free -g 这个命令四舍五入了,明明给的内存是 4G , 可能看到是3G
相对来说, free -m 是比较容易看,而且结果也是比较精确的
如果应用程序可用内存/系统物理内存大于 70% 的话,说明内存是充足的,没啥问题,但是如果小于 20% 的话,就要考虑增加内存了
四、df
查看磁盘空间就是 df 或者 df -h 这两个命令了
五、 iostat
检查磁盘 IO 情况的命令就是 iostat ,如果你用的时候发现提示:-bash: iostat: command not found ,那是因为没有安装 sysstat ,安装一下就可以了:yum install -y sysstat
接下来运行命令:iostat -xdk 3 4
,和 vmstat 命令很像有没有~
这么多指标咱们不需要都关注,只要看其中这几个就可以了:
- rkB/s :每秒读取数据量 kB ;
- wkB/s :每秒写入数据量 kB ;
- svctm :I/O 请求的平均服务时间,单位毫秒;
- util :一秒中有百分之几的时间用于 I/O 操作,如果接近 100% 说明磁盘带宽跑满了,这个时候就要优化程序或者增加磁盘了
六、sar
网络 IO 的话,可以通过 sar -n DEV 3 2
这条命令来看,和上面的差不多,意思就是每隔 3 秒取样一次,一共取样 2 次。
其中:
IFACE :LAN 接口
rxpck/s :每秒钟接收的数据包
txpck/s :每秒钟发送的数据包
rxKB/s :每秒接收的数据量,单位 KByte
txKB/s :每秒发出的数据量,单位 KByte
rxcmp/s :每秒钟接收的压缩数据包
txcmp/s :每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包