Sun Java System Message Queue 3.7 UR1 管理指南

Java 虛擬機器調整

依預設,代理程式會使用 192MB 的 JVM 堆疊容量。此容量對大量的訊息負載通常過小,所以應增加其大小。

當代理程式將要耗盡 Java 物件使用的 JVM 堆疊儲存區空間時,會使用各種技術 (如流量控制和訊息交換) 來釋放記憶體。在極端情況下,它甚至會關閉用戶端連線以釋放記憶體,並降低訊息的傳入量。因此,最好將最大 JVM 堆疊儲存區空間設定得足夠大,以避免發生此類情況。

但是,如果將最大 Java 堆疊儲存區空間設定得過大 (相對於系統實體記憶體),代理程式會持續增加 Java 堆疊儲存區空間,直至整個系統的記憶體用完。這會導致效能降低、不可預料的代理程式當機,和/或影響系統上執行的其他應用程式和服務的運作。一般而言,您需要允許足夠用於作業系統和機器上其他執行應用程式的實體記憶體。

一般而言,最好先評估正常時段和尖峰時段的系統記憶體使用量,然後再配置 Java 堆疊容量,該容量大小應足以提供良好的效能,但又不至於大到導致系統記憶體問題。

若要變更代理程式的最小和最大堆疊容量,請在啟動代理程式時,使用 -vmargs 指令行選項。例如:

/usr/bin/imqbrokerd -vmargs "-Xms256m -Xmx1024m"

此指令會將 Java 堆疊容量的下限設定為 256MB,上限為 1GB。

在任何狀況下,都請檢查代理程式的記錄檔或使用 imqcmd metrics bkr -m cxn 指令,以驗證設定。