服务器内存使用飙升的排查

admin 行业动态 2024-08-19 30

摘要:这几天自己线上的乞丐服务器遇到一个问题,io会瞬间飙升到很高很高,造成内存使用飙升。但是实际上并发量并不大(网络连接数)。知道是哪个进程造成的,但是确实排查代码中没有是么地方会有这么大的读写。实在想不通。 部署的是一个socket服务。用测试脚本跑,同时100个socket连接毫无压力。也...

 这几天自己线上的乞丐服务器遇到一个问题,io会瞬间飙升到很高很高,造成内存使用飙升。但是实际上并发量并不大(网络连接数)。知道是哪个进程造成的,但是确实排查代码中没有是么地方会有这么大的读写。实在想不通。

部署的是一个socket服务。用测试脚本跑,同时100个socket连接毫无压力。也不知道对方到底发的什么数据导致这么大的内存占用。

之前也处理过类似的问题。麻烦之处在于很好的定位问题,重现实际的操作。没办法,只能针对socket服务特定的端口进行抓包。希望能够通过数据包复现这种情况。

服务器问题,无非就是资源不合理的使用,造成服务器内存,cpu,io,流量等相关资源出现非常不正常的波动,资源使用率飙升。对于服务器性能问题的排查,没有其他比较好的办法,只能是通过重现复盘去改进。特别是如果服务器上跑的东西比较多,一个个的排查相当痛苦。

出现问题,首先看日志。如果是线上的,先想办法恢复服务再排查。

看看登录日志,访问日志是否有异常,确定是否有人扫机器。

看性能监控图表,分析机器的状况,以及问题发生的规律。

看是否有服务被系统kill。一般系统日志都会记录kill之前的进程列表,可以很好的分析哪些进程资源占用多。

如果还是没找到原因,那就只能抓网络数据。通过记录的网络数据在测试环境中复现线上问题。

相关推荐

评论列表
关闭

用微信“扫一扫”