服务器排查

服务器版本

4核8g,CentOS 7.6

场景:

每次上课前20min,服务器响应超时,服务器几乎处于宕机状态

排查流程:

1、查看服务器CPU状态、以及MySQL慢查询记录

使用top命令,发现占用最多的MySQL一般CPU120%左右,初步判断可能是慢查询导致的,定位到对应的MySQL的慢查询文件路径,并查看其日志,发现慢查询的触发都是在半夜的时候(后续去排查为什么半夜出现此问题),排除是MySQL慢查询导致。

CPU使用情况

MySQL慢查询记录

2、查看服务器宕机记录:

使用命令last rebootlast -F |grep crash发现没有宕机导致的重启的情况

查询历史重启记录

3、查看系统日志:

定位到/var/log文件夹下,查看messages,sa记录等,我查看了sa记录(sar -u -f sa09 | moresar -s -f sa09 | more),发现memory在用户使用的高峰期,就会几乎爆满了,但是问题不大,只要没有100%就还好,毕竟他这个%memused是算上了buff/cached的。通过top命令发现实际上使用的大概是50%(不含buff/cache)左右。

系统统计的资源使用情况

4、查看磁盘读写情况

毋庸置疑使用df -h命令看看是不是磁盘满了,导致大量请求的时候,写太慢了所以宕机了?一看果然还真是。。。

磁盘占用率

问题找到!然后通过du -sh *去定位到到底是什么文件导致的占用磁盘空间过大,然后发现是Java的log和MySQL的一个表磁盘占用比较大,所以我删除了最近的几天的日志以及停用了MySQL的exception记录表

删除Java多少天之前的.log日志的命令:

find 文件夹路径 -mtime +5 -name "*.log" -exec rm -rf {} \;