内存泄露主要就是监控进程的内存消耗,AIX下可以通过ps vg得到内存的消耗量,从而比较
另外,有个很有用的脚本:post_vg.sh 用来比较内存的增加

下面是一个以前监控内存泄漏问题时的一个自动脚本
------------------
-- run_ps_vg.sh --
------------------
#crontab -e
#10,20,30,40,50,59 9-20 * * * /home/root/run_vg.sh /home/root/postvg.trc

fn=$1

sysdate=`date`
fname="zzz ***"$sysdate
echo $fname >> $fn
ps vg >> $fn

------------------------
-- analyze_post_vg.sh --
------------------------
fn=$1

cat $fn |grep -n zzz|sed 's/ /_/g'|sed 's/***//g'|sed 's/zzz_//g'|sed 's/:/ /' > tmp.out
       
while read hh rq
do
  hh_list=$hh_list" "$hh
  rq_list=$rq_list" "$rq
done<tmp.out

hh_array=($hh_list)
rq_array=($rq_list)

for((i=0;i<${#hh_array[@]};i++))
do          
  let cou=${#hh_array[@]}-1        
  if [ $i -eq $cou ]; then
    let hh=${hh_array[i]}+1 
    tail -n +$hh $fn > vg_${rq_array[i]}.trc
  else
    let thh=${hh_array[i]}+1
    let hhh=${hh_array[i+1]}-1
    head -n $hhh $fn |tail -n +$thh > vg_${rq_array[i]}.trc
  fi      
done

ls -l |grep vg.*trc |awk '{print $9}' > tmp.out

while read trcfile
do
  trcfile_list=$trcfile_list" "$trcfile
done<tmp.out

#echo $trcfile_list
trcfile_array=($trcfile_list)

for((i=0;i<${#trcfile_array[@]};i++))
do          
  let cou=${#trcfile_array[@]}-1        
  if [ $i -eq $cou ]; then
 echo "end"
  else
    endfile=${trcfile_array[i+1]}
    begfile=${trcfile_array[i]}
 echo $begfile" "$endfile
    ./postvg.sh $begfile $endfile|awk '$5 != 0 {print $0}'
  fi      
done

使用:
1.在AIX系统上挂了定时任务,定时执行run_ps_vg.sh,参数入输出的文件名
2.使用analyze_post_vg.sh分析输出,该脚本主要是用来调用post_vg.sh脚本。参数为上一步的输出文件,输出如下
 postvg.trc vg_Fri_Mar_13_10:40:00_BEIST_2009.trc
             pid       Name      Before Size     After Size           Delta
             zzz                           0              0               0
 *** Total Delta 0
 vg_Fri_Mar_13_10:40:00_BEIST_2009.trc vg_Fri_Mar_13_10:50:00_BEIST_2009.trc
             pid       Name      Before Size     After Size           Delta
          991642    oracleJ             5404           5736             332
          721192    oracleJ             4932           5988            1056
          664050    /oracle             6984           6988               4
          381226    oracleJ             4392           4404              12
         1163288    oracleJ             4396           4556             160
          512110    oracleJ             4264           4308              44
          307418    oracleJ             4392           4500             108
 *** Total Delta 1716
 vg_Fri_Mar_13_10:50:00_BEIST_2009.trc vg_Fri_Mar_13_10:59:00_BEIST_2009.trc
             pid       Name      Before Size     After Size           Delta
          987550    /home/r             3284           3296              12
 *** Total Delta 12
 vg_Fri_Mar_13_10:59:00_BEIST_2009.trc vg_Fri_Mar_13_11:10:00_BEIST_2009.trc
             pid       Name      Before Size     After Size           Delta
          987550    /home/r             3296           3304               8
 *** Total Delta 8
 vg_Fri_Mar_13_11:10:00_BEIST_2009.trc vg_Fri_Mar_13_11:20:00_BEIST_2009.trc
             pid       Name      Before Size     After Size           Delta
         1745300    oracleJ             4360           4376              16
          987550    /home/r             3304           3308               4
         1167472    oracleJ             4320           4636             316
 *** Total Delta 336
 vg_Fri_Mar_13_11:20:00_BEIST_2009.trc vg_Fri_Mar_13_11:30:00_BEIST_2009.trc
             pid       Name      Before Size     After Size           Delta
          602482    oracleJ             4892           4464            -428
          987550    /home/r             3308           3316               8
         1167472    oracleJ             4636           4320            -316

3.通过对结果进行检查,可以查看一个进程使用的内存是否在持续增大
 bash-3.00# cat result.txt|grep 987550
      987550    /home/r             3284           3296              12
      987550    /home/r             3296           3304               8
      987550    /home/r             3304           3308               4
      987550    /home/r             3308           3316               8
      987550    /home/r             3316           3320               4
      987550    /home/r             3320           3324               4
      987550    /home/r             3324           3328               4
      987550    /home/r             3328           3332               4
      987550    /home/r             3332           3348              16
      987550    /home/r             3348           3356               8
      987550    /home/r             3356           3360               4
      987550    /home/r             3360           4604            1244
      987550    /home/r             4604           6468            1864
      987550    /home/r             6468           6472               4
      987550    /home/r             6472           6484              12
      987550    /home/r             6484           6988             504
      987550    /home/r             6988           7020              32
      987550    /home/r             7020           7056              36
      987550    /home/r             7056           7064               8
      987550    /home/r             7064           7096              32
      987550    /home/r             7096           7120              24
      987550    /home/r             7120           7160              4

AIX下内存泄漏的监控相关推荐

  1. Linux下内存泄漏定位方法

    Linux下内存泄漏可分为用户空间的内存泄漏和内核空间的内存泄漏. 用户空间内存泄漏的查找方法: 第一步,查找内存泄漏的应用程序. 首先,写一个简单的内存泄漏程序(每秒钟泄漏4MB)umemleak. ...

  2. window 下内存泄漏检测

    在window 下开发进行内存泄漏的检测相对比较容易. 这里只是简单的记录一些东西,没有具体的谈论实现. window 下面内存检测主要可以考虑从两个方面入手,这两个方面并不是一个if else 分支 ...

  3. 面试:KOOM内存泄漏的监控

    LeakCannary 为什么各大厂自研的内存泄漏检测框架都要参考 LeakCanary?因为它是真强啊!_慕课手记 内存快照是在触发了onDestory中做的 目前,LeakCanary 支持以下五 ...

  4. arc下内存泄漏的解决小技巧

    一定要注意,我们运行app时,一定要关心内存的使用,尽量不要超过20M,即使有很多图片要显示也绝对不能超过30M.所以运行自己开发的app时多关心内存的使用是个很好的习惯. 对于性能,内存的优化,这个 ...

  5. 【内存检测系列】window下windbg内存泄漏检查

    文章目录 1.使用windbg中的umdh检查 1.1. 工具下载 1.2.环境配置 1.3.利用工具umdh(user-mode dump heap)分析 1.4.利用umdh创建heap快照 2. ...

  6. 5种避免C#.NET中因事件造成内存泄漏的技术

    原文来自互联网,由长沙DotNET技术社区编译. 5种避免C#.NET中事件造成的内存泄漏的技术 C#(通常是.NET)中的事件注册是内存泄漏的最常见原因.至少从我的经验来看.实际上,我从事件中看到了 ...

  7. Android内存优化(二):一分钟发现内存泄漏

    在上一篇文章Android内存优化(一):Java内存区域中已经大体上介绍了Java中的内存分布情况,这一篇主要讲一下内存泄漏的产生原因.内存泄漏的危害.内存泄漏一键分析与定位.以及代码中常见的内存泄 ...

  8. 一次完整的JVM堆外内存泄漏故障排查记录

    前言 记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些JVM内存分配机制以及常用的JVM问题排查指令和工具分享,希望对大家有所帮助. 在整个排查过程中,我也走了不少弯路,但是在文章中我 ...

  9. Netty技术细节源码分析-ByteBuf的内存泄漏原因与检测

    本文的github地址:点此 该文所涉及的netty源码版本为4.1.6. Netty中的ByteBuf为什么会发生内存泄漏 在Netty中,ByetBuf并不是只采用可达性分析来对ByteBuf底层 ...

  10. 填坑总结:python内存泄漏排查小技巧

    摘要:最近服务遇到了内存泄漏问题,运维同学紧急呼叫解决,于是在解决问题之余也系统记录了下内存泄漏问题的常见解决思路. 本文分享自华为云社区<python内存泄漏排查小技巧>,作者:luti ...

最新文章

  1. jquery 操作ajax 相关方法
  2. WordCount结对项目
  3. iOS之Socket的使用-AsyncSocket
  4. gc就是fullgc吗 major_线上出现fullgc问题如何排查?
  5. 容斥原理 和 欧拉函数
  6. 程序员 30 岁前,该如何规划自己的职业发展?
  7. mysql+last_query_cost_辛星简译MySQL中的last_query_cost_MySQL
  8. EasyVS -- 快速整理region的Visual Studio扩展
  9. Android 记忆卡片游戏 记忆力 Android游戏 Android记忆卡片游戏源代码
  10. 把汇总报表页面生成 pdf文件方案!
  11. 阿里云智能技术战略架构师陈绪:透视2019云计算酣战
  12. Blue Coat推移动设备安全(MDS)服务
  13. cdr怎么抠图轮廓线条_CDR怎么抠图?CorelDRAW快速抠图方法
  14. 一场云端的“神仙打架”:BAT加华为的影响未来之争
  15. 麦澜德医疗科创板上市:年营收3.4亿市值44亿 深耕盆底康复
  16. api接口文档中的签名是什么
  17. 聊聊电商交易平台的架构设计(干货)
  18. PBN飞越转弯Flyover衔接DF航段保护区组图
  19. uidesigner android控件库,uidesigner(腾讯内部软件原型设计利器UI设计软件)v2.5.5.1官方版-独木成林...
  20. 镁光ssd管理工具 linux,SandForce主控固态硬盘SF-2241 vb2开卡成功经验

热门文章

  1. 52. N皇后 II
  2. 公式推导 11-27
  3. 12满秩分解与奇异值分解(1)
  4. eclipse mysql tomcat,java+eclipse+tomcat+mysql+jdbc
  5. 华为鸿蒙巴龙麒麟,华为5G新机强势曝光:麒麟985+巴龙5000+鸿蒙系统,颜值性能炸裂...
  6. CS231n李飞飞计算机视觉 神经网络训练细节part2上
  7. 【机器学习系列】隐马尔科夫模型第二讲:前向算法、后向算法
  8. 解决一次模拟post请求的时候,出现中文???的错误
  9. Maven 常用仓库网址
  10. 离散数学复习--第一章:命题逻辑