两招定位服务器高负载异常告警

机器高负载告警一般是CPU负载在99-100%,同时伴有大量的网络出包和入包量,常见的原因是机器在某个时段进行LOG,数据等备份操作。

1,首先,执行top -d 1,查看CPU的负载情况和对应的繁忙的进程列表,如果要查看到各个核的CPU负载,只需按1即可切换到该视图。

该命令的使用具体请看<<linux下如何查看多核负载情况>>

如下图:

top demo

可以看出,PID=15514的进程名字为rsync在进行同步文件操作,占CPU 99%

2, 查看该进程(PID=15514)的具体打开了哪些IO操作(包括网络socket),执行命令

lsof -p 15514

注意该命令需要root权限,可以通过su命令切换到root用户。

lsof demo

可以看出,在该时刻,进程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中看到,这时候可以需要现场抓包了。

你可能感兴趣的:(服务器)