此部分主要为机器,系统的排查,不涉及具体的服务 。

目的为:迅速定位机器到底哪里出的问题。是CPU,内存,还是磁盘的问题。

后续再查看具体是什么服务影响的。

 

可以通过看监控来确认【没报警就是目前正常】

没必要非得上机器看。。。

 

load.1min

cpu.busy

iowait 【监控每个核都有,】

memfree.percent

 

快速确认

uptime     

查看load。

vmstat  -SM -n 1

查看整体的内存、IO、CPU等。

 

 

具体【进程,CPU,磁盘IO,网络】

内存排查

free -m 看整体内存使用情况。【udp机器的tcpup比较占用内存】

ps aux|sort -nr -k4|head -10

 

 

CPU排查

ps aux|sort -nr -k3|head -10   

排查哪个进程占的CPU多。【这个比例应该是 单核的】

 

 

多核CPU的资源是否分配平衡。有没有某个核打满的情况。

mpstat -P ALL 1 

查看所有CPU的,情况。 【%dile即为空闲CPU比例】 【%iowait  即为%wa】

 

磁盘 / IO 排查

iotop 【root 权限】

查看具体进程的IO。

 

 

iostat  -dm 1 

查看各个磁盘的IO情况。


    kB_read/s:每秒从设备(drive expressed)读取的数据量;
    kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
    kB_read:  读取的总数据量;
    kB_wrtn:  写入的总数量数据量;这些单位都为Kilobytes。

 

iostat -dx 1|awk '{print $1"\t"$10"\t"$11"\t"$12}'   

查看各个磁盘的await 和  util。


    【await   每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,
                   一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。】
    【util     处理IO时间 / 总时间    百分比】

 

 

网络排查

iftop  看网络负载

 

其他类似指令

【避免某些机器没有这些指令】

iostat  -c  只查看CPU使用    %dile即为空闲CPU比例【】

其他排查方法:

ps aux   【Java线程 ps -Lp  xxxx   cu】