[20210507]分析library cache轉儲.txt

lfree發表於2021-05-07

[20210507]分析library cache轉儲.txt

--//繼續前面的分析,看看mutex的地址.
$ grep "Bucket:" book_ora_12044_0003.trc | sed "s/^Bucket: #=//;s/Mutex=//;s/(.*)//" > a3.txt

--//檢視a3.txt檔案發現:
41 0x80a715c0
46 0x80a71688

80a715c0  = 2158433728
80a71688  = 2158433928

2158433928-2158433728 = 200
200/(46-41) = 40

--//是否可以推出每個mutex結構體佔用40位元組.

494 0x80a75c88
495 0x80a75cb0

80a75c88  = 2158451848
80a75cb0  = 2158451888

2158451888-2158451848 = 40

--//繼續測試:

1149 0x80a7c2e0
1152 0x80a7c358

80a7c2e0  = 2158478048
80a7c358  = 2158478168

2158478168-2158478048 = 120
120/(52-49) = 40

--//寫一個指令碼分析看看.windows下的awk太難用了,在cygwin下使用.

$ awk 'NR==1{a=$1;b=strtonum($2) } NR>1{ print a,b,$1-a,strtonum($2)-b,(strtonum($2)-b)/($1-a);a=$1;b=strtonum($2)}'  a3.txt | head
41 2158433728 5 200 40
46 2158433928 38 1520 40
84 2158435448 61 2440 40
145 2158437888 77 3080 40
222 2158440968 107 4280 40
329 2158445248 93 3720 40
422 2158448968 13 520 40
435 2158449488 17 680 40
452 2158450168 18 720 40
470 2158450888 24 960 40

$ awk 'NR==1{a=$1;b=strtonum($2) } NR>1{ print (strtonum($2)-b)/($1-a);a=$1;b=strtonum($2)}'  a3.txt | sort | uniq -c | sort -nr
   3698 40
      1 -96675.8
      1 -943344
      1 -5246550
      1 -511229
      1 509576
      1 32856.1
      1 205413
      1 164322
--//可以看出大部分都是佔用40.也驗證我的判斷.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2771268/,如需轉載,請註明出處,否則將追究法律責任。

相關文章