【生产问题--服务器宕机解决】

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

介绍

年初的时候有个客户反馈有个服务不能用了。需要重启才能使用。但是使用一段时间后就会宕机。并且紧急投诉给研发部门。
作为开发我们该如何排查问题并解决呢下面我介绍下自己的经历。

问题排查

首先确认下客户的情况。发现给这个服务发送请求都是超时的说明服务器基本不可用了。
登陆服务器查看 java 进程:
ps -ef | grep java
然后 dump 下来 .hprof 文件
此时可以用 Mat 工具来打开 这个dump文件。里面可以查看 内存的分布和堆栈分析。能定位到具体的代码。

问题原因

最后定位到的问题是 一个sql 查询调用平台的框架查询了所有字段数据并且这个表有很多的关联数据都一一查询出来然后放入内存中导致频繁的 full-gc 操作。最终内存不够 导致系统不可用了。

解决办法

修改sql 逻辑只查询简单的几个字段避免了查询大量无用数据放入内存中 触发频繁的gc 。

总结

如果大家有遇到类似的问题而不知道什么问题时:
可以分析下 1.nginx配置 是否有问题比如将请求都转发到这个服务器上面导致负载过大。
2.redis 的雪崩问题看下热点数据过期时间问题
3.慢sql 的问题是否有大量的sql 耗时严重是否要加索引
4.代码逻辑问题涉及到分析dump文件。可以借助 Mat工具。非常方便。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 服务器