Sun Java System Message Queue 3.7 UR1 管理指南

代理程式的流量不穩定

徵兆:

可能原因:

可能原因:代理程式的記憶體資源非常少。

因為未正確設定目標與代理程式限制,代理程式會採取越來越嚴格的動作,以防記憶體超載,這會導致在清除積存的訊息前,代理程式運作緩慢。

若要確認此問題的原因:檢查記憶體不足狀況下的代理程式記錄

[B1089]: In low memory condition, broker is attempting to free up resources

後面還有一個項目,描述新的記憶體狀態和所使用的記憶體總數。也請檢查 JVM 堆疊中可用的記憶體:

imqcmd metrics bkr -m cxn

JVM 記憶體總數接近 JVM 記憶體最大值時,可用記憶體會不足。

若要解決此問題:

可能原因:正在執行 JVM 記憶體收回 (廢棄項目收集)。

記憶體收回程序會定期檢查整個系統,以釋放記憶體。發生此情況時,會阻斷所有執行緒。釋放出來的記憶體數量越多,JVM 堆疊的容量越大,因記憶體收回而導致的延遲時間就越長。

若要確認此問題的原因:監視電腦的 CPU 使用率。執行記憶體收回時,會大幅降低 CPU 使用率。

另外,請使用以下指令行選項以啟動代理程式:

- vmargs -verbose:gc

標準輸出會指出執行記憶體收回的時間。

若要解決此問題:在具有多個 CPU 的電腦中,設定同時執行記憶體收回:

-XX:+UseParallelGC=true

可能原因:JVM 使用及時 (Just-In-Time) 編譯器以提高效能。

若要確認此問題的原因:檢查是否有其他可能造成此問題的原因。

若要解決此問題:讓系統執行一段時間,效能應會改善。