您的位置:首页 > 其它

性能测试培训:分析内训泄露的案例

2015-12-10 16:57 1146 查看

性能测试培训:分析内训泄露的案例

poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。在poptest的loadrunner的培训中,为了提高学员性能优化的经验,加入了很多服务器方面的优化知识,为性能调优的能力打下基础。下面分享案例:问题现象: 进程挂掉导致原因:内存泄露
问题难度:分析难度大方法:
系统介绍:服务端os是Linux,用C++开发。
1、确认进程退出原因是内存泄露
a.将退出的进程重启,然后通过命令确认是否启动。
进程名为:libDataToDb.so,命令查看:pe -ef | grep "libDataToDb",结果如下。
[root@localhost EventSievingbak]# ps -ef | grep VB
root 24669 1 0 10:07 pts/2 00:00:00 ./VBAdapter -n libDataToDb.so
b.业务流操作同时进行监控,跟踪进程的内存使用率(MEM%)的变化。
命令为:top -p 24669(进程id),
如果MEM%随着时间的增加不断在增加,就基本可以确定为内存泄露。
2、分析数据
一般可以通过两种方法设置。
方法一:进程退出后,命令行输入:ulimit -c unlimited,然后再重新启动该进程。
拷贝该进程所在的目录下core文件,里面记载着内存分配情况。
方法二: 进程退出后,通过valgrind工具来产生日志,具体如下
# cd /opt/SMP/DataToDb; //进入进程所在目录
# valgrind --log-file=crash.log --leak-check=full //设置日志文件
# ./VBAdapter -n libDataToDb.so >/dev/null 2>&1 //重新启动进程
拷贝/opt/SMP/DataToDb下crash.log文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件测试开发