My memo


Heapdump解析の復習

Tags

  • Java
  • Performance

Heapdump解析

諸事情によりHeapdumpの解析をしなくてはいけなくなってる。

むかーしに一通りさらったものの、だいぶ忘れているので復習をしていく。

memo: 起きている事象

Heap以前にメモリ管理全般

ps とかで出てくる内容

Java側のメモリ管理

大きく3つ:

+-----------------------------+--------+--------+
|        Java Heap            |        |        |
+------+------------+---------+        |        |
|      | Survivor-0 |         | Thread | C Heap |
| Eden +------------+ Tenured | Stack  |        |
|      | Survivor-1 |         |        |        |
+------+------------+---------+--------+--------+

Heapの構成

Heapの解析

jstat でその時のスナップショットが取れる。(cf. jstatコマンド)

以下の例だと、PID 46番のプロセスのヒープの断面が見られる。出ている数字はKB単位。

その他、若干マイナーなものたち:

$ jstat -gc 46
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   
 0.0   7168.0  0.0   7168.0 1285120.0 321536.0  804864.0   408303.5  267520.0 145904.4 39936.0 14701.9    824   28.107   0      0.000  410    12.191   40.298

C Heap

上記の通り、Java側が確保しているHeapは大した事なさそう。+αでC Heap?も見てみる。

いくつか考察

References

その他

⇇ Back to home