Я пытаюсь понять, почему сервер ColdFusion 9 (JRun) выдает следующую ошибку:
java.lang.OutOfMemoryError: requested 32756 bytes for ChunkPool::allocate. Out of swap space?
Аргументы JVM таковы:
-server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -
Я имелjconsole работает, когда произошел дамп, и я пытаюсь согласовать некоторые числа с параметром -XX:MaxPermSize=192m
выше.Когда JRun умер, у него было следующее использование памяти:
Heap
PSYoungGen total 136960K, used 60012K [0x5f180000, 0x67e30000, 0x68d00000)
eden space 130624K, 45% used [0x5f180000,0x62c1b178,0x67110000)
from space 6336K, 0% used [0x67800000,0x67800000,0x67e30000)
to space 6720K, 0% used [0x67110000,0x67110000,0x677a0000)
PSOldGen total 405696K, used 241824K [0x11500000, 0x2a130000, 0x5f180000)
object space 405696K, 59% used [0x11500000,0x20128360,0x2a130000)
PSPermGen total 77440K, used 77070K [0x05500000, 0x0a0a0000, 0x11500000)
object space 77440K, 99% used [0x05500000,0x0a043af0,0x0a0a0000)
Мой первый вопрос состоит в том, что дамп показывает, что PSPermGen
является проблемой - он говорит, что общий объем составляет 77440K, но он должен быть 196608K (на основемой аргумент JVM 192 м), верно?Что мне здесь не хватает?Это как-то связано с другим пулом, не относящимся к куче - с кешем кода?
Я работаю на 32-битной машине, Windows Server 2008 Standard.Я думал об увеличении аргумента PSPermGen
JVM, но я хочу понять, почему он, кажется, не использует свое текущее распределение.
Заранее спасибо!