如何进行一次内存溢出案例分析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1746个文字,预计阅读时间需要7分钟。
在前面的话+朋友,你经历过服务运行良好突然内存溢出吗?你经历过没有看过Java虚拟机,来解决问题内存溢出的痛苦吗?你经历过遇到一个BUG,百思不得其解,焦急烦躁吗?
说在前面的话朋友,你经历过部署好的服务突然内存溢出吗?
你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗?
你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗?
我知道,你有过!
但是我还是要来说说我的故事..................
背景:
有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个),
服务端用Java写的(带管理页面),属于RPC模式,中间的通信框架使用的是thrift。
thrift很多优点就不多说了,它是facebook的开源的rpc框架,主要是它能够跨语言,序列化速度快,但是他有个不讨喜的地方就是它必须用自己IDL来定义接口
thrift版本:0.9.2.
问题定位与分析 步骤一.初步分析客户端无法连接服务端,查看服务器的端口开启状况,服务端口并没有开启。于是启动服务端,启动几秒后,服务端崩溃,重复启动,服务端依旧在启动几秒后崩溃。
步骤二.查看服务端日志分析分析得知是因为java.lang.OutOfMemoryError: Java heap space(堆内存溢出)导致的服务崩溃。
客户端搜集的主机信息,主机策略都是放在缓存中,可能是因为缓存较大造成的,但是通过日志可以看出是因为Thrift服务抛出的堆内存溢出异常与缓存大小无关。
本文共计1746个文字,预计阅读时间需要7分钟。
在前面的话+朋友,你经历过服务运行良好突然内存溢出吗?你经历过没有看过Java虚拟机,来解决问题内存溢出的痛苦吗?你经历过遇到一个BUG,百思不得其解,焦急烦躁吗?
说在前面的话朋友,你经历过部署好的服务突然内存溢出吗?
你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗?
你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗?
我知道,你有过!
但是我还是要来说说我的故事..................
背景:
有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个),
服务端用Java写的(带管理页面),属于RPC模式,中间的通信框架使用的是thrift。
thrift很多优点就不多说了,它是facebook的开源的rpc框架,主要是它能够跨语言,序列化速度快,但是他有个不讨喜的地方就是它必须用自己IDL来定义接口
thrift版本:0.9.2.
问题定位与分析 步骤一.初步分析客户端无法连接服务端,查看服务器的端口开启状况,服务端口并没有开启。于是启动服务端,启动几秒后,服务端崩溃,重复启动,服务端依旧在启动几秒后崩溃。
步骤二.查看服务端日志分析分析得知是因为java.lang.OutOfMemoryError: Java heap space(堆内存溢出)导致的服务崩溃。
客户端搜集的主机信息,主机策略都是放在缓存中,可能是因为缓存较大造成的,但是通过日志可以看出是因为Thrift服务抛出的堆内存溢出异常与缓存大小无关。

