AIX下内存泄漏的监控
内存泄露主要就是监控进程的内存消耗,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下内存泄漏的监控相关推荐
- Linux下内存泄漏定位方法
Linux下内存泄漏可分为用户空间的内存泄漏和内核空间的内存泄漏. 用户空间内存泄漏的查找方法: 第一步,查找内存泄漏的应用程序. 首先,写一个简单的内存泄漏程序(每秒钟泄漏4MB)umemleak. ...
- window 下内存泄漏检测
在window 下开发进行内存泄漏的检测相对比较容易. 这里只是简单的记录一些东西,没有具体的谈论实现. window 下面内存检测主要可以考虑从两个方面入手,这两个方面并不是一个if else 分支 ...
- 面试:KOOM内存泄漏的监控
LeakCannary 为什么各大厂自研的内存泄漏检测框架都要参考 LeakCanary?因为它是真强啊!_慕课手记 内存快照是在触发了onDestory中做的 目前,LeakCanary 支持以下五 ...
- arc下内存泄漏的解决小技巧
一定要注意,我们运行app时,一定要关心内存的使用,尽量不要超过20M,即使有很多图片要显示也绝对不能超过30M.所以运行自己开发的app时多关心内存的使用是个很好的习惯. 对于性能,内存的优化,这个 ...
- 【内存检测系列】window下windbg内存泄漏检查
文章目录 1.使用windbg中的umdh检查 1.1. 工具下载 1.2.环境配置 1.3.利用工具umdh(user-mode dump heap)分析 1.4.利用umdh创建heap快照 2. ...
- 5种避免C#.NET中因事件造成内存泄漏的技术
原文来自互联网,由长沙DotNET技术社区编译. 5种避免C#.NET中事件造成的内存泄漏的技术 C#(通常是.NET)中的事件注册是内存泄漏的最常见原因.至少从我的经验来看.实际上,我从事件中看到了 ...
- Android内存优化(二):一分钟发现内存泄漏
在上一篇文章Android内存优化(一):Java内存区域中已经大体上介绍了Java中的内存分布情况,这一篇主要讲一下内存泄漏的产生原因.内存泄漏的危害.内存泄漏一键分析与定位.以及代码中常见的内存泄 ...
- 一次完整的JVM堆外内存泄漏故障排查记录
前言 记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些JVM内存分配机制以及常用的JVM问题排查指令和工具分享,希望对大家有所帮助. 在整个排查过程中,我也走了不少弯路,但是在文章中我 ...
- Netty技术细节源码分析-ByteBuf的内存泄漏原因与检测
本文的github地址:点此 该文所涉及的netty源码版本为4.1.6. Netty中的ByteBuf为什么会发生内存泄漏 在Netty中,ByetBuf并不是只采用可达性分析来对ByteBuf底层 ...
- 填坑总结:python内存泄漏排查小技巧
摘要:最近服务遇到了内存泄漏问题,运维同学紧急呼叫解决,于是在解决问题之余也系统记录了下内存泄漏问题的常见解决思路. 本文分享自华为云社区<python内存泄漏排查小技巧>,作者:luti ...
最新文章
- jquery 操作ajax 相关方法
- WordCount结对项目
- iOS之Socket的使用-AsyncSocket
- gc就是fullgc吗 major_线上出现fullgc问题如何排查?
- 容斥原理 和 欧拉函数
- 程序员 30 岁前,该如何规划自己的职业发展?
- mysql+last_query_cost_辛星简译MySQL中的last_query_cost_MySQL
- EasyVS -- 快速整理region的Visual Studio扩展
- Android 记忆卡片游戏 记忆力 Android游戏 Android记忆卡片游戏源代码
- 把汇总报表页面生成 pdf文件方案!
- 阿里云智能技术战略架构师陈绪:透视2019云计算酣战
- Blue Coat推移动设备安全(MDS)服务
- cdr怎么抠图轮廓线条_CDR怎么抠图?CorelDRAW快速抠图方法
- 一场云端的“神仙打架”:BAT加华为的影响未来之争
- 麦澜德医疗科创板上市:年营收3.4亿市值44亿 深耕盆底康复
- api接口文档中的签名是什么
- 聊聊电商交易平台的架构设计(干货)
- PBN飞越转弯Flyover衔接DF航段保护区组图
- uidesigner android控件库,uidesigner(腾讯内部软件原型设计利器UI设计软件)v2.5.5.1官方版-独木成林...
- 镁光ssd管理工具 linux,SandForce主控固态硬盘SF-2241 vb2开卡成功经验
热门文章
- 52. N皇后 II
- 公式推导 11-27
- 12满秩分解与奇异值分解(1)
- eclipse mysql tomcat,java+eclipse+tomcat+mysql+jdbc
- 华为鸿蒙巴龙麒麟,华为5G新机强势曝光:麒麟985+巴龙5000+鸿蒙系统,颜值性能炸裂...
- CS231n李飞飞计算机视觉 神经网络训练细节part2上
- 【机器学习系列】隐马尔科夫模型第二讲:前向算法、后向算法
- 解决一次模拟post请求的时候,出现中文???的错误
- Maven 常用仓库网址
- 离散数学复习--第一章:命题逻辑