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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2135176/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Flutter 上的記憶體洩漏監控Flutter記憶體
- [實戰] Flutter 上的記憶體洩漏監控Flutter記憶體
- Android記憶體洩漏監控和優化技巧總結Android記憶體優化
- 分析記憶體洩漏和goroutine洩漏記憶體Go
- 記憶體洩漏的原因記憶體
- jvm 記憶體洩漏JVM記憶體
- Android 記憶體洩漏Android記憶體
- Java記憶體洩漏Java記憶體
- js記憶體洩漏JS記憶體
- Android記憶體洩漏Android記憶體
- WebView引起的記憶體洩漏WebView記憶體
- valgrind 記憶體洩漏分析記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- 如何在 Linux 下檢測記憶體洩漏Linux記憶體
- luajit表記錄監控(憶一次專案上線中遇到的luajit物件記憶體洩漏)物件記憶體
- 【記憶體洩漏和記憶體溢位】JavaScript之深入淺出理解記憶體洩漏和記憶體溢位記憶體溢位JavaScript
- JVM——記憶體洩漏與記憶體溢位JVM記憶體溢位
- Android中常見的記憶體洩漏Android記憶體
- .NET 記憶體洩漏的爭議記憶體
- Swift的ARC和記憶體洩漏Swift記憶體
- vue使用中的記憶體洩漏Vue記憶體
- Android中的記憶體洩漏模式Android記憶體模式
- [譯] Swift 中的記憶體洩漏Swift記憶體
- 記憶體洩漏除錯工具記憶體除錯
- ThreadLocal真會記憶體洩漏?thread記憶體
- Perfdog 玩轉記憶體洩漏記憶體
- .Net程式記憶體洩漏解析記憶體
- iOS檢測記憶體洩漏iOS記憶體
- Android記憶體洩漏場景Android記憶體
- ThreadLocal記憶體洩漏問題thread記憶體
- PHP 記憶體洩漏分析定位PHP記憶體
- JavaScript之記憶體洩漏【四】JavaScript記憶體
- 1.記憶體優化(一)記憶體洩漏記憶體優化
- JavaScript之記憶體溢位和記憶體洩漏JavaScript記憶體溢位
- java記憶體溢位和記憶體洩漏的區別Java記憶體溢位
- 造成記憶體洩漏的操作有哪些?記憶體
- 如何避免JavaScript中的記憶體洩漏?JavaScript記憶體
- Handler的使用、記憶體洩漏和解決記憶體
- 納尼,Java 存在記憶體洩洩洩洩洩洩漏嗎?Java記憶體