JVM內存初步學習
最近在學習容器內的JVM運行, 簡單總結了下學習結果, 但是感覺還是分不清楚很多地方:
同事幫忙進行了 native memory的監控, 主要信息簡要如下:
jvm剛運行起來時的信息爲:
我這邊容器運行時, 使用的參數是 4c4g
jvm 啓動的參數爲:
-Xmx2560m -Xms2560m -XX:MetaspaceSize=512m
根據下面的監控結果
但是明顯看到 reserved的內存是 4.7g 超過了 堆區和元數據區的總和.
也看到了 committed的內存大小是 3.5g 左右.
內存分類信息爲:
堆區 2.5g 左右就是 直接分配的大小了, 齊總應該包含 Class的信息是 1.3g左右, 其他空間應該是暫時的空閒區域.
線程池 200m JIT編譯緩存代碼 280m 垃圾回收線程 100m 我理解的 symbol 應該就是文件對象的緩存(不一定正確)
可以看到內存的需求種類還是非常繁多的.
Native Memory Tracking: Total: reserved=4703901KB, committed=3595737KB - Java Heap (reserved=2621440KB, committed=2621440KB) (mmap: reserved=2621440KB, committed=2621440KB) - Class (reserved=1294166KB, committed=277974KB) (classes #44537) (malloc=12118KB #109287) (mmap: reserved=1282048KB, committed=265856KB) - Thread (reserved=189995KB, committed=189995KB) (thread #185) (stack: reserved=189112KB, committed=189112KB) (malloc=603KB #926) (arena=280KB #365) - Code (reserved=282656KB, committed=190684KB) (malloc=33056KB #43651) (mmap: reserved=249600KB, committed=157628KB) - GC (reserved=101602KB, committed=101602KB) (malloc=5822KB #1753) (mmap: reserved=95780KB, committed=95780KB) - Compiler (reserved=625KB, committed=625KB) (malloc=494KB #5497) (arena=131KB #6) - Internal (reserved=151177KB, committed=151177KB) (malloc=151145KB #56630) (mmap: reserved=32KB, committed=32KB) - Symbol (reserved=50252KB, committed=50252KB) (malloc=47751KB #509336) (arena=2501KB #1) - Native Memory Tracking (reserved=11411KB, committed=11411KB) (malloc=36KB #426) (tracking overhead=11375KB) - Arena Chunk (reserved=576KB, committed=576KB) (malloc=576KB)
運行一晚上後的信息爲:
能夠看到 一晚上多了200m的內存 commited 數量, 並且有持續增加的區趨勢
堆區因爲有限制, 所以不會有大的變化, 但是可以看到 class的數量就是變大了. 多了100m
棧區域基本不變, 還是200個左右.
jit 代碼緩存增長了大約10m
其他內存變化不是特別大.
但是感覺內存還是存在上漲的區域 容器內運行時還是需要控制各個區域內存的大小,避免出現超過container的限制而崩潰.
Total: reserved=4775691KB, committed=3711687KB - Java Heap (reserved=2621440KB, committed=2621440KB) (mmap: reserved=2621440KB, committed=2621440KB) - Class (reserved=1336975KB, committed=327439KB) (classes #52046) (malloc=13967KB #137324) (mmap: reserved=1323008KB, committed=313472KB) - Thread (reserved=204481KB, committed=204481KB) (thread #199) (stack: reserved=203504KB, committed=203504KB) (malloc=649KB #996) (arena=328KB #393) - Code (reserved=290336KB, committed=235868KB) (malloc=40736KB #56418) (mmap: reserved=249600KB, committed=195132KB) - GC (reserved=101611KB, committed=101611KB) (malloc=5831KB #2046) (mmap: reserved=95780KB, committed=95780KB) - Compiler (reserved=841KB, committed=841KB) (malloc=710KB #7054) (arena=131KB #6) - Internal (reserved=153165KB, committed=153165KB) (malloc=153133KB #66436) (mmap: reserved=32KB, committed=32KB) - Symbol (reserved=53852KB, committed=53852KB) (malloc=51319KB #545043) (arena=2533KB #1) - Native Memory Tracking (reserved=12795KB, committed=12795KB) (malloc=41KB #480) (tracking overhead=12755KB) - Arena Chunk (reserved=193KB, committed=193KB) (malloc=193KB)