Linux

linux下java記憶體分配

  • October 3, 2012

我正在使用以下命令執行 4 個 java 程序:

java -Xmx256m -jar …

並且系統在fedora 12下有8Gb記憶體。

但是它顯然正在交換。

如果 4 x 256m = 1Gb 怎麼辦?

**編輯:**另外,所有 8Gb 的記憶體怎麼能用這麼少的記憶體分配給基本上唯一執行的東西?

java不是垃圾收集是因為作業系統告訴它不需要還是什麼?


最佳:

top - 20:13:57 up  3:55,  6 users,  load average: 1.99, 2.54, 2.67
Tasks: 251 total,   6 running, 245 sleeping,   0 stopped,   0 zombie
Cpu(s): 50.1%us,  2.9%sy,  0.0%ni, 45.1%id,  1.1%wa,  0.0%hi,  0.8%si,  0.0%st
Mem:   8252304k total,  8195552k used,    56752k free,    34356k buffers
Swap: 10354680k total,    74044k used, 10280636k free,  6624148k cached

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1948 xxxxxxxx  20   0 1624m 240m 4020 S 96.8  3.0 164:33.75 java
1927 xxxxxxxx  20   0  139m  31m  27m R 91.8  0.4  38:34.55 postgres
1929 xxxxxxxx  20   0 1624m 200m 3984 S 86.2  2.5 183:24.88 java
1969 xxxxxxxx  20   0 1624m 292m 3984 S 65.6  3.6 154:06.76 java
1987 xxxxxxxx  20   0  137m  29m  27m R 28.5  0.4  75:49.82 postgres
1581 root      20   0  159m  18m 4712 S 22.5  0.2  52:42.54 Xorg
2411 xxxxxxxx  20   0  309m 9748 4544 S 20.9  0.1  45:05.08 gnome-system-mo
1947 xxxxxxxx  20   0  137m  28m  27m S 13.3  0.4  44:46.04 postgres
1772 xxxxxxxx  20   0  135m  25m  25m S  4.0  0.3   1:09.14 postgres
1966 xxxxxxxx  20   0  137m  29m  27m S  3.0  0.4  64:27.09 postgres
1773 xxxxxxxx  20   0  135m  732  624 S  1.0  0.0   0:24.86 postgres
2464 xxxxxxxx  20   0 15028 1156  744 R  0.7  0.0   0:49.14 top
 344 root      15  -5     0    0    0 S  0.3  0.0   0:02.26 kdmflush
   1 root      20   0  4124  620  524 S  0.0  0.0   0:00.88 init
   2 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kthreadd
   3 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
   4 root      15  -5     0    0    0 S  0.0  0.0   0:00.04 ksoftirqd/0

即使物理記憶體未滿,記憶體管理器也會根據它認為最好的方式自動將內容放入交換中。您是否有理由根本不希望它進入交換?真的會影響程序的執行嗎?

您需要關閉交換才能測試有或沒有交換的速度。

另外,它什麼時候使用交換?一直執行還是執行一段時間後?您還必須考慮到底層系統也需要記憶體。以及您正在使用的任何 IDE,以及正在執行的任何其他程序。因此,您可能需要交換比您意識到的更多。

引用自:https://serverfault.com/questions/100432