WebSphere MQ 性能調優詳談(四)

四、與channel有關的MQ性能考慮因素:

  1. 選擇偵聽程序(Listener)的線程/進程運行方式:

MQ的偵聽程序有兩種配置和啟動方式,一種是通過配置/etc/inetd.conf文件選擇使用inetd方式, 也可以使用MQ自身提供的runmqlsr程序,所不同的是:runmqlsr 是一個線程應用,所以比inetd需要更少的內存消耗。因此,採用runmqlsr方式可以提高通道相關的性能。

  1. 選擇通道的線程/進程運行方式

與偵聽程序類似,與MQ通道對應的MCA代理程序也可以有線程和進程兩種運行方式,可以通過定義通道的MCATYPE屬性來設置通道MCA的運行方式為thread方式。讓通道以線程方式運行而非進程方式運行,這樣可以減少通道運行的進程個數和消耗的內存資源。

對於以上兩點,要注意的是:當通道的連接個數很多時,如在Unix平台上超過500個時,建議MCATYPE和listener採用進程的方式。

  1. 設置偵聽程序的trusted運行方式
  2. 與MQ應用程序類似,MQ的通道偵聽程序也有trusted(fastpath)和non trusted(standard)兩種運行方式,採用trusted運行方式可以降低CPU和內存消耗。將通道和偵聽程序設置為trusted方式運行的方法是通過修改qm.ini配置文件中的MQIBindType參數來實現,即創建或修改qm.ini文件中與Channels相關的小節,例如:

Channels:

  1. MQIBindType=FASTPATH 或者
    MQIBindType=STANDARD

其中,FASTPATH表示trusted運行方式,而STANDARD表示非trusted運行方式。

  1. 加大通道的PipeLineLength屬性
  2. 從MQ版本V5.2開始,MQ提供了一個新的通道參數,即PipeLineLength屬性,通過該屬性,可以設置MCA採用多個線程的方式來傳輸消息,從而成為提高通道性能的又一個手段。缺省情況下,該參數數值為1,任何大於1的設置MQ本身都會將其設置為2。

設置PipeLineLength的方法是修改qm.ini文件的Channels一節,如下:

Channels:

  1. PipeLineLength=2

注意,必須在通道兩端都進行設置,否則會自動取兩者之間的最小值。

  1. 設置MaxChannels和MaxActiveChannels屬性
  2. MaxChannels和MaxActiveChannels分別代表隊列管理器允許配置的通道的最大個數和允許同時運行的通道的個數,MaxChannels的缺省值是100,MaxActiveChannels的缺省值與MaxChannels相同。如果您的並發通道連接個數超過了100,您需要修改這兩個參數。這對於大並發的Client/Server間通訊尤為重要。
  3. 調整通道的Batchsz( )屬性
  4. 通道的Batchsz( )值是影響通道性能的一個關鍵參數。在MQ進行消息傳輸時,通道對消息的處理也是在同步點的控制之下並具有交易特性的,在以下條件滿足時,它將統一提交一批消息:
    當發送的消息個數達到BATCHSZ時;或傳輸隊列為空,並且在BATCHINT指定的時間間隔內一直沒有消息到達時。

缺省情況下,通道的Batchsz是50,這是一個較為合理和優化的設置。一個小的Batch size值會使每條消息佔用大的資源。比如,假設我們在局域網的情況下,Batch size值越大,通道的性能越好。然而,在廣域網環境下,要根據網絡狀況的好壞來設置該參數,若網絡狀況很差,Batch size值越大,可能會導致通道的性能越差。

  1. 推薦在兩個隊列管理器之間同方向上建立一條通道。
  2. 設置通道的NPMSPEED(FAST)屬性。

如前所述,MQ的消息分為永久性消息和非永久性消息兩種,對於非永久性消息,通道屬性NPMSPEED可以設置為FAST和NORMAL,為了提高性能,可以設定該屬性為FAST。

除了隊列、隊列管理器日誌大小、通道和API的使用和設置對MQ性能的影響之外,MQSeries的性能與系統的資源或性能息息相關,如系統的CPU, RAM, Disk (I/O), network等方面的配置會直接影響WebSphere MQ的性能.

以下文章點擊率最高

Loading…

     

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

發表評論

您的電子郵箱地址不會被公開。 必填項已用*標註