Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9530
  • 博文数量: 2
  • 博客积分: 1420
  • 博客等级: 上尉
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-18 16:48
文章分类
文章存档

2008年(2)

我的朋友
最近访客

分类:

2008-12-18 16:51:20

幻灯片 9
08年的时候,客户发现tuxedo服务,在运行一段时间后,经常出现内存耗尽的情况。同时客户购买了IBM得purify.所以就帮组客户使用purify测试tuxedo服务。说句实话,purify测试tuxedo服务确实不是很理想,从测试结果的数据上看,居然说tuxedo本身有内存泄漏问题。tuxedo老版本是这个问题的,但是新版本以及补丁都修正了这些问题。咨询Bea和IBM得人都说不知道。那我也只能不知道了。
 不过还是有一定作用的。下面就详细介绍下测试的过程:  幻灯片 6
幻灯片 6
第一步:创建Purify相关的Makefile文件
   使用CC(GCC)代替buildserver命令    
      purify -log-file=/tux2/boss15/bss/MemLeak.log -view-file=/tux2/boss15/bss/MemLeak.pv cc -xarch=v9 -w  -I$TUXDIR/include -o MemoryLeak BS-5120.c  -L${TUXDIR}/lib MemoryLeak.c /tux2/tux3/boss15/bss/src/makefile/test/public.c  -ltux -lbuft -lfml -lfml32 -lengine -R/usr/lib/lwp -lpthread -lposix4 -lsocket -lnsl
幻灯片 6
注意:
1.需要打开调试标识即-g,才能定位到具体内存泄漏的位置,否则purify不能显示源程序.
2.Purify加入到环境变量PATH
幻灯片 7
第二步:运行Makfile文件,使得在服务中插入purify的内存检查代码
第三步:启动Tuxedo服务,tmboot –s XXXX
幻灯片 8
第四步:调用客户端程序,请求Tuxedo服务
第五步:停止Tuxedo服务,
   tmshutdown –s XXXX
幻灯片 9
第六步:取得结果 XXX.log,进行分析
Memory leaked(MLK):内存泄漏
下列情况可引起内存的不可读或不可写:
Array Bounds Read (ABR):数组越界。
Beyond Stack Read (BSR):堆栈越界。
Free Memory Read (FMR):空闲内存阅读。
Invalid Pointer Read (IPR):非法指针阅读。
Null Pointer Read (NPR):空指针阅读。
Uninitialized Memory Read (UMR):未初始化内存阅读。

总结:需要知道tuxedo如何集成cc编译器的。
幻灯片 17
使用Purify最关键的是修改Makefile文件
-g选项的重要性
如果快速的分析报告



阅读(967) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:使用PerformaSure监控Oracle As服务器

给主人留下些什么吧!~~