проблема памяти смолы - PullRequest
       11

проблема памяти смолы

0 голосов
/ 25 апреля 2011

Я запустил смолу 3.0.28, используя параметр jvm:

    -Xms6300M -Xmx6300M -Xss128k -XX:ThreadStackSize=256 -XX:MaxPermSize=128M 
-XX:PermSize=128M -verbose:gc -XX:+PrintGCDetails -XX:+UseParallelGC 
-XX:+PrintGCTimeStamps

но объем оставшейся памяти превышает 10 ГБ

Что не так со смолой? Я использую jmap -heap и вывод такой, как показано ниже: он показывает, что память кучи JVM находится в нормальном состоянии.

Attaching to process ID 9456, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 10.0-b22

using thread-local object allocation.
Parallel GC with 16 thread(s)

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 6606028800 (6300.0MB)
   NewSize          = 2686976 (2.5625MB)
   MaxNewSize       = -65536 (-0.0625MB)
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 134217728 (128.0MB)
   MaxPermSize      = 134217728 (128.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 2155151360 (2055.3125MB)
   used     = 1966086568 (1875.0062637329102MB)
   free     = 189064792 (180.30623626708984MB)
   91.22730795112228% used
From Space:
   capacity = 23265280 (22.1875MB)
   used     = 13849352 (13.207771301269531MB)
   free     = 9415928 (8.979728698730469MB)
   59.527983329665496% used
To Space:
   capacity = 23068672 (22.0MB)
   used     = 0 (0.0MB)
   free     = 23068672 (22.0MB)
   0.0% used
PS Old Generation
   capacity = 4404019200 (4200.0MB)
   used     = 3854164456 (3675.6176528930664MB)
   free     = 549854744 (524.3823471069336MB)
   87.51470602126349% used
PS Perm Generation
   capacity = 134217728 (128.0MB)
   used     = 53393152 (50.919677734375MB)
   free     = 80824576 (77.080322265625MB)
   39.78099822998047% used

1 Ответ

0 голосов
/ 17 июля 2011

Что именно вы имеете в виду, моя "память сохранилась"?Я предполагаю, что вы имеете в виду память, выделенную самим процессом:

Куча не будет использовать больше, чем вы указали (кроме некоторой фрагментации, но это незначительно).«Другие объекты» в этом процессе используют это пространство, хотя может быть что-то не так со смолой или JVM, особенно, если память постоянно увеличивается в течение недель, объем памяти, используемой смолой и HVM, также может быть нормальным.

Посмотрите на мою попытку ответить на другой похожий вопрос:

Потребление памяти JVM вдвое больше размера кучи

Короче: убедитесь, что вы смотрите направильный размер процесса.Обычно я использую 1-1,5 ГБ пространства без кучи Java для смолы в 32-разрядной системе Debian (что, конечно, делает ваши 4 ГБ звучащими много).

Более того:
-Xss128k -XX: ThreadStackSize = 256

будет интерпретироваться как

-XX: ThreadStackSize = 128 -XX: ThreadStackSize = 256,

, поэтому вы можете удалить один из них ... (см. http://mail.openjdk.java.net/pipermail/hotspot-dev/2011-June/004272.html)

...