WebSphere Process Server V6.2 性能調優,第 1 部分2

初始堆大小用於指定 JVM 代碼可使用的初始堆大小 ( 以兆字節計 )。增加最小堆大小可改進啟動,少發生垃圾回收的次數,並且可實現 10% 的性能增益。通常,增加 Java 堆的大小會改進吞吐量,直到堆不再駐留在物理內存中。當堆開始交換到磁盤後,Java 性能將大幅下降。

    短生命周期對象所佔用的 Java 堆棧大小,當您使用 generational concurrent (gencon) 規則 Java GC 的時候,需要設置短生命周期對象所佔用的 Java 堆棧大小,整個 Java 堆棧可分為兩部分,短生命周期對象所佔用的 Java 堆棧和長生命周期對象所佔用的 Java 堆棧。如果您的應用中含有很多短時間內就會完成的事務,則應該將短生命周期對象所佔用 Java 堆的空間設置較大。
你可以在通用 JVM 參數 (Generic JVM arguments) 中輸入三個參數:
-Xmns size:
初始化的短生命周期對象所佔用的 Java 堆棧大小 
-Xmnx size:
最大的短生命周期對象所佔用的 Java 堆棧大小 
-Xmn size:
固定短生命周期對象所佔用的 Java 堆棧大小

Message Driven Bean (MDB) 激活規範相關的參數

在 WPS (WAS) 中有兩種 MDB 激活規範,針對每一種 MDB 激活規範,都有兩個關鍵參數需要進行調整:maxConcurrency 和 maxBatchSize。

    maxConrurrency 用於調整消息驅動的 bean 的最大實例數。缺省情況下,並發 MDB 實例的最大數目設置為 10。在生產環境中這個值偏小,需要調整以增加並發處理能力。但是也並非越大越好,還要基於可用資源的情況進行設定,最大並發性限制可防止在臨時構建消息時啟動過多的 MDB 實例。

    maxBatchSize 用於調整消息驅動的 bean 的最大批處理大小。
缺省情況下,一次只將單條消息傳遞給消息驅動的 bean 實例。可以通過將消息成批傳遞給消息驅動的 bean 來提高性能。於是,每個消息驅動的 bean 實例一次就會接收許多消息 ( 消息數的範圍是 1 到批處理大小 )。如果與消息驅動的 bean 相關聯的可用消息數 ( 隊列深度 ) 始終都很多,那麼更改最大並發性可能會對您有利。

下面我們介紹這兩種激活規範的用途和調整方法:

(1) J2C 激活規範

J2C 激活規範用於使用外部資源適配器來部署消息驅動的 bean。如果您要將消息驅動的 bean 用作 Java 連接器體系結構 (JCA) 1.5 資源適配器上的偵聽器,而不是缺省消息傳遞 JMS 提供程序,那麼使用 J2C 激活規範。
您可以通過管理控制台進行設置:
資源 > 資源適配器 > J2C 激活規範 > 激活規範名稱 > J2C 激活規範定製屬性 ( 圖 6)

圖 6. J2C 激活規範設置頁面


您也可以通過管理控制台這樣進行設置:
資源 > 資源適配器 > 資源適配器名稱 > 其他屬性 > J2C 激活規範 > J2C 激活規範名稱 > J2C 激活規範定製屬性 ( 圖 7)

圖 7. J2C 激活規範設置頁面


(2) JMS 激活規範

在 WPS 或 WAS 中,消息驅動的 Bean 與其目標之間的接口是由 JMS 激活規範提供的。JMS 激活規範與一個或多個消息驅動的 bean 關聯,並為它們提供接收消息所需的配置。
您可以通過管理控制台進行設置:
資源 > JMS > 激活規範 > 激活規範名稱 ( 圖 8)

圖 8. JMS 激活規範設置頁面


MQ 偵聽器端口 (Listener Port) 相關的參數

WPS 使用 MQ 監聽器端口為 MQ 或 MQ JMS 綁定 (binding) 讀入消息。每個偵聽器端口由一個
消息驅動 Bean (Message Driven Bean) 使用,從關聯的目標自動接收消息。MQ 監聽器端口中的最大會話 (maximum sessions) 屬性可以控制讀入消息的並發性能。每個會話相應於一個單獨的偵聽器線程,並因此控制並發處理的消息數。如果您希望按嚴格的消息順序來處理消息,則將值設置為 1,這樣在任何時候都只有 1 個線程在處理消息。當服務器未充分利用機器的可用容量,並且您不需要按特定消息順序來處理消息時,請調整此參數。
如果您希望同步處理多個消息 ( 稱為“消息並發性“),則將此屬性設置為大於 1 的值。儘可能將此值保持在低值,以防止重載客戶機應用程序。對於存在運行時間很短的事務的 100% JMS 工作負載來說,一個好的起始點是每個處理器 2 到 4 個會話。如果存在運行時間較長的事務,則您可能需要更多會話,這些會話應該通過實踐來確定。
您可以通過管理控制台進行設置:
服務器 > 應用程序服務器 > 通信 > 消息傳遞 > 消息偵聽器服務 > 其他屬性 > 偵聽器端口 > 偵聽器端口名稱 ( 圖 9)

圖 9. MQ 偵聽器端口設置頁面


線程池大小相關的參數

對於每個 server,有三個線程池的參數需要調整:

    Default

    ORB.thread.pool

    WebContainer

Default 線程池中的線程用於分配給 MDB 的實例使用,除非您單獨指定其他的線程池。這意味着 Default 線程池的大小要比較大,尤其是當您增大激活規範的 maxConccurency 參數時。

ORB (對象請求代理,Object Request Broker) 線程池用於運行 ORB 請求,如遠程 EJB 調用。如果您有大量的遠程 EJB 被調用,比如人工任務 API 被調用,您需要加大 ORB 線程池大小來提高遠程 EJB 調用的並發處理能力。Web Container 線程池中的線程用於處理 HTTP 和 Web 服務的請求,且被所有應用共用,因此您需要增大線程池以提高 HTTP 和 Web 服務請求的並發處理能力。

您可以通過管理控制台進行設置:服務器 > 應用程序服務器 > 其他屬性 > 線程池 ( 圖 10)

圖 10. 服務器線程池調整參數

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營