微布开发-服务器排查
服务器排查
服务器版本
4核8g,CentOS 7.6
场景:
每次上课前20min,服务器响应超时,服务器几乎处于宕机状态
排查流程:
1、查看服务器CPU状态、以及MySQL慢查询记录
使用top
命令,发现占用最多的MySQL一般CPU120%左右,初步判断可能是慢查询导致的,定位到对应的MySQL的慢查询文件路径,并查看其日志,发现慢查询的触发都是在半夜的时候(后续去排查为什么半夜出现此问题),排除是MySQL慢查询导致。
2、查看服务器宕机记录:
使用命令last reboot
和last -F |grep crash
发现没有宕机导致的重启的情况
3、查看系统日志:
定位到/var/log文件夹下,查看messages,sa记录等,我查看了sa记录(sar -u -f sa09 | more
、sar -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 {} \;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HUT菜鸟小八的博客!
评论