Linux系统性能问题定位-内存泄露
来源:互联网 发布:十面埋伏 知乎 编辑:程序博客网 时间:2024/06/05 03:28
问题描述:
500用户并发运行半小时后性能急剧下降。
TPS(每秒处理事务数)曲线图如下:
运行前半小时,TPS约640;半小时后,TPS急剧下降(在20-100范围内波动)。
图-1
平均响应时间曲线图如下:
运行前半小时,平均响应时间约1秒;半小时后,响应时间急剧上升(在4-20秒范围内波动)。
图-2
备注:测试环境拓扑图
图-3
原因分析
1. 打开nmon的监控结果,分析DISKBUSY数据可知磁盘IO接近100%,IO突然增高导致系统处理响应时间变大,从而导致每秒处理事务数(TPS)急剧减小。
图-4
2. 再分析nmon的MEN数据可知系统空闲内存逐步减小,半小时左右内存降到最低值(见图-5),存在内存泄露;同时结合nmon的VM数据可知,当内存降到最低值(内存不足)时,系统开始频繁的在交换区写入写出(见图-6)。交换区频繁的写入写出操作占用了大量的IO开销,导致上述的磁盘IO瓶颈。
图-5
图-6
3. 根据上述对nmon监控数据的分析可知,linux系统上存在内存泄露,当内存不足时系统性能就急剧下降。因为linux系统上同时部署DB数据库服务和astrotest后台程序,在测试运行中,使用top命令可知DB数据库服务的内存占用很小,astrotest程序占用了大量内存。即astrotest程序存在内存泄露。
4. 分析astrotest程序,发现在取数据库的代码中有个结构没有释放。这最终导致系统内存泄露。
解决方案
修改astrotest程序代码,及时释放该结构。
- Linux系统性能问题定位-内存泄露
- linux应用程序 内存泄露问题定位 -- memwatch
- Linux系统性能问题定位-网络带宽瓶颈
- 一个内存泄露问题的定位
- 如何定位native内存泄露问题?
- Java内存泄露问题定位常用命令
- Linux应用内存泄露分析与定位
- linux下内存的统计和内存泄露类问题的定位
- linux下内存的统计和内存泄露类问题的定位
- linux下内存的统计和内存泄露类问题的定位
- linux下内存的统计和内存泄露类问题的定位
- Linux下内存统计和内存泄露类问题的定位方法
- Linux下内存统计和内存泄露类问题的定位方法
- linux下内存的统计和内存泄露问题的定位-转
- linux下内存的统计和内存泄露类问题的定位
- linux下内存的统计和内存泄露类问题的定位
- linux下内存的统计和内存泄露类问题的定位
- linux下内存的统计和内存泄露类问题的定位
- 全球根DNS服务器
- 两数的差
- 请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
- HTML 5 视频
- Mac OS X 背后的故事(七)三好学生Chris Lattner的LLVM编译工具链
- Linux系统性能问题定位-内存泄露
- 连接不上数据库时返回速度较慢
- VMWare克隆或复制没有IP
- 0001 java安全 起步
- DLL 动态链接库 基础知识
- 第五周上机任务2
- 第7周任务2-求四个整数中的最大值
- Android框架浅析之锁屏(Keyguard)机制原理
- 地形Tile中纹理删除以及替换模块分析,所有源码转自Ogrese