机器高负载告警一般是CPU负载在99-100%,同时伴有大量的网络出包和入包量,常见的原因是机器在某个时段进行LOG,数据等备份操作。
1,首先,执行top -d 1,查看CPU的负载情况和对应的繁忙的进程列表,如果要查看到各个核的CPU负载,只需按1即可切换到该视图。
该命令的使用具体请看<<linux下如何查看多核负载情况>>
如下图:
可以看出,PID=15514的进程名字为rsync在进行同步文件操作,占CPU 99%
2, 查看该进程(PID=15514)的具体打开了哪些IO操作(包括网络socket),执行命令
lsof -p 15514
注意该命令需要root权限,可以通过su命令切换到root用户。
可以看出,在该时刻,进程rsync在进行非常频繁的文件备份操作,并且是从IP后缀是102的机器,同步到IP后缀是87的机器,此时正在读取的文件是/data/log/sch_inorder_insert-1.0/back/201003.tar.gz
这个是在指定的时间点进行现场抓包,也可以通过查看/var/log/messages 系统流水进行查看connection from来自哪个IP的请求:
需要root密码
cat /var/log/messages | grep "connection from"
一般可以看出在系统通过ssh连接到该机器的rsync同步操作,但若对应的rsync不是通过ssh机制,则无法在该log中看到,这时候可以需要现场抓包了。