[英]JVM with -Xmx500m actually consumes 1GB of memory
我正在嘗試在 VPS 上以“始終在線”模式長時間托管 Swing Java 應用程序,並且願意將其裝入 1GB 大小(Ubuntu 作為主機操作系統)。
應用程序以“-Xmx500m -XX:+UseConcMarkSweepGC”開頭,它應該適合(與所有其他輔助人員一起)放入 1GB 的總 RAM 中似乎是合理的,但是......在運行應用程序 2-3 天后top
說 java僅應用程序就占用了近 1GB(請參閱 USED 列)——比指定的“-Xmx500m”多兩倍:
KiB Mem : 1009136 total, 66084 free, 867128 used, 75924 buff/cache
KiB Swap: 716796 total, 9388 free, 707408 used. 28472 avail Mem
PID VIRT RES SWAP USED SHR S %CPU %MEM TIME+ COMMAND
2401 3076084 529648 467832 997480 1900 S 31.0 52.5 916:05.68 java
2218 285544 37548 74720 112268 8800 S 6.9 3.7 269:12.60 Xvnc4
2388 709104 11448 9744 21192 7760 S 6.9 1.1 24:45.88 mate-terminal
883 643820 10932 2540 13472 5624 S 0.0 1.1 1:48.43 do-agent
2327 544648 4092 5992 10084 2436 S 3.4 0.4 6:38.31 clock-applet
應用程序中的實際“堆使用”大約為 350MB(由應用程序本身顯示)。
從jstat -gc 2401
我看到只有大約 630MB 的使用量。 其他 ~360MB 在哪里? 我缺少什么? 是否可以通過某些 JVM 選項減少內存使用量?
S0C S1C S0U S1U EC EU OC OU
8512.0 8512.0 0.0 2161.2 68160.0 67668.5 426816.0 249483.9
MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
112464.0 108027.1 14160.0 13222.6 48701 1484.856 124 590.113 2074.968
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html
S0C - Current survivor space 0 - 8MB
S1C - Current survivor space 1 - 8MB
EU - Current eden space capacity - 68 MB
OC - Current old space capacity - 426 MB
MC - Metaspace capacity - 112 MB
CCSC - Compressed class space capacity - 14 MB
--> 636 MB
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.