如何解决线程满载引发的服务器崩溃问题排查过程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1132个文字,预计阅读时间需要5分钟。
目录 + 问题介绍 + 1. 重启服务器 + 2. 修改最大线程数 + 3. 查找最大Java程序线程 + 4. 导出问题程序线程日志 + 5. 找到问题代码 + 6. 解决方案 + 问题介绍 + 测试服务器无法连接,SSH登录不上。
目录
- 问题介绍
- 1. 重启服务器
- 2. 修改最大线程数
- 3. 查找线程最大的java程序
- 4. 导出问题程序的线程日志
- 5. 找到问题代码
- 6. 解决方案
问题介绍
测试服务器突然无法连接,ssh登录不上。只有重启才能解决。重启一天后,又连接不上了。
于是有了下面的排查过程,最终发现是有个java程序一直在创建线程,导致线程达到服务器最大数量,服务器崩溃。
1. 重启服务器
重启后,ssh连接发现下面问题
fork faild:Cannot allocate memory
以为是内存满了
于是,free -h,查看内存情况,还有,观察一段时间后,内存没多大变化
2. 修改最大线程数
经过各种百度,都说可以通过修改服务器的最大线程数来解决,于是我也这么干了。当时做的时候没有截图,所以下面截图是网上找的,凑合看看。
本文共计1132个文字,预计阅读时间需要5分钟。
目录 + 问题介绍 + 1. 重启服务器 + 2. 修改最大线程数 + 3. 查找最大Java程序线程 + 4. 导出问题程序线程日志 + 5. 找到问题代码 + 6. 解决方案 + 问题介绍 + 测试服务器无法连接,SSH登录不上。
目录
- 问题介绍
- 1. 重启服务器
- 2. 修改最大线程数
- 3. 查找线程最大的java程序
- 4. 导出问题程序的线程日志
- 5. 找到问题代码
- 6. 解决方案
问题介绍
测试服务器突然无法连接,ssh登录不上。只有重启才能解决。重启一天后,又连接不上了。
于是有了下面的排查过程,最终发现是有个java程序一直在创建线程,导致线程达到服务器最大数量,服务器崩溃。
1. 重启服务器
重启后,ssh连接发现下面问题
fork faild:Cannot allocate memory
以为是内存满了
于是,free -h,查看内存情况,还有,观察一段时间后,内存没多大变化
2. 修改最大线程数
经过各种百度,都说可以通过修改服务器的最大线程数来解决,于是我也这么干了。当时做的时候没有截图,所以下面截图是网上找的,凑合看看。

