Tomcat:apache-tomcat-8.0.21
Java:1.8.0_91-b14
我们在tomcat中部署的战争很少。 Heap
分钟和最大值设置为1GB。 MaxMetaspace
设置为256MB。
从顶部和htop cmd,RES内存使用量为2244M。
除堆和元空间内存外,其余约为964MB。
2244M(RES mem) - 1024M(堆) - 256M(Metaspace)= 964M
此964MB内存包含什么?如何使用jdk工具验证相同内容?
当我们在webapp中删除所有应用程序并重新启动时,它甚至没有1MB RES内存使用。
截图:
使用Top unix cmd的Tomcat内存使用情况
来自gc log的元空间使用
使用本机内存跟踪(在上述数据的不同时间拍摄)
以下是native memory
cmd的输出。添加所有committed
值并不总计RAM使用率(1825M或1.8gb)。
1693M = Sum of all groups committed values(only committed on the first line of each group )
[root@iyc krishna]# sudo -u tomcat /opt/jdk1.8.0_91/bin/jcmd 22239 VM.native_memory summary
22239:
Native Memory Tracking:
Total: reserved=2894609KB, committed=1723517KB
- Java Heap (reserved=1048576KB, committed=1048576KB)
(mmap: reserved=1048576KB, committed=1048576KB)
- Class (reserved=1258404KB, committed=239444KB)
(classes #41586)
(malloc=5028KB #81169)
(mmap: reserved=1253376KB, committed=234416KB)
- Thread (reserved=184932KB, committed=184932KB)
(thread #176)
(stack: reserved=179900KB, committed=179900KB)
(malloc=580KB #885)
(arena=4453KB #352)
- Code (reserved=270879KB, committed=120795KB)
(malloc=21279KB #27527)
(mmap: reserved=249600KB, committed=99516KB)
- GC (reserved=81676KB, committed=81676KB)
(malloc=9996KB #52352)
(mmap: reserved=71680KB, committed=71680KB)
- Compiler (reserved=4901KB, committed=4901KB)
(malloc=312KB #745)
(arena=4589KB #9)
- Internal (reserved=12462KB, committed=12462KB)
(malloc=12430KB #55846)
(mmap: reserved=32KB, committed=32KB)
- Symbol (reserved=19876KB, committed=19876KB)
(malloc=16192KB #176321)
(arena=3684KB #1)
- Native Memory Tracking (reserved=6222KB, committed=6222KB)
(malloc=33KB #393)
(tracking overhead=6189KB)
- Arena Chunk (reserved=4631KB, committed=4631KB)
(malloc=4631KB)
- Unknown (reserved=2048KB, committed=0KB)
(mmap: reserved=2048KB, committed=0KB)
热门cmd结果:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22239 tomcat 20 0 4290m 1.8g 18m S 103.8 23.1 12:38.92 java
RES内存值使用htop:1825M
为什么这些值没有达到Top cmd显示的值?或者我的计算不正确?