[Linux]

針對 Linux 調整 SIP Servlet

在 Linux 2.6 核心上執行時採用「階段作業起始通訊協定 (SIP)」Servlet 的調整要訣。

關於這項作業

階段作業起始通訊協定 (SIP) Servlet 在負載不足的情況下,可能會重新傳輸訊息或刪除呼叫。UDP 通訊端佇列可能已滿。詳細的記憶體回收輸出檢閱可能會顯示記憶體回收的時間相當長,例如 0.5 到 1.5 秒。造成此問題的原因是乙太網路驅動程式、Linux ®作業系統、WebSphere® Application Server 或是這些項目的組合,未針對 SIP 應用程式進行調整。您可以套用下列層次的調整。
註: 下列建議只在 Red Hat Enterprise Linux 4 測試過,並且依現狀提供,不含任何隱含保證。

程序

  1. 調整 Linux 乙太網路驅動程式。

    Linux 乙太網路驅動程式的調整,從選擇最佳的乙太網路驅動程式開始。例如,HS20 刀鋒伺服器的建議驅動程式是 tg3-3.43b 驅動程式(或更新版本)。 下列 Shell 指令已用來調整 Linux Kernel 乙太網路驅動程式:

    /sbin/ifconfig eth0 txqueuelen 2000
    /sbin/ifconfig eth1 txqueuelen 2000
    ethtool -s eth0 autoneg off speed 1000 duplex full
    ethtool -A eth0 autoneg off rx on tx on
    ethtool -C eth0 adaptive-rx off adaptive-tx off rx-
    usecs 20 rx-frames 5 tx-usecs 60 tx-frames 11
    ethtool -G eth0 rx 511 rx-jumbo 255 tx 511
    根據已安裝的乙太網路驅動程式,下列部分選項可能需要變更。
  2. 調整 Linux Kernel。
    Linux Kernel 調整使用下列指令:
    echo 16777216 > /proc/sys/net/core/rmem_max
    echo 2097152 > /proc/sys/net/core/rmem_default
    echo 16777216 > /proc/sys/net/core/wmem_max
    echo 2097152 > /proc/sys/net/core/wmem_default
    echo 10000000 > /proc/sys/net/core/optmem_max
    echo 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_rmem
    echo 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_wmem
    echo 8388608 8388608 8388608 > /proc/sys/net/ipv4/tcp_mem
    echo 400 > /proc/sys/net/unix/max_dgram_qlen
    echo 400 > /proc/sys/net/core/message_burst
    echo 2800 > /proc/sys/net/core/mod_cong
    echo 1000 > /proc/sys/net/core/lo_cong
    echo 200 > /proc/sys/net/core/no_cong
    echo 2900 > /proc/sys/net/core/no_cong_thresh
    echo 3000 > /proc/sys/net/core/netdev_max_backlog
    這個配置對於給定的應用程式可能不盡理想,而且您可能需要調整配置以取得最佳效能。不過,您可以將這些值當成起點。
  3. WebSphere® Application Server 進行 SIP 調整。 您可以使用下列步驟,對 WebSphere Application Server 進行 SIP 調整。
    1. 為 SIP Servlet 儲存器建立個別的執行緒儲存區。 在管理主控台中依循下列路徑:
      1. 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name
      2. 在「其他內容」之下,按一下執行緒儲存區 > 新建
      3. 在「名稱」欄位中,輸入 SipContainer
      4. 大小下限大小上限欄位中,輸入 15。這些值對於大部分應用程式而言已經足夠。
      5. 按一下確定
    2. 為 SIP Servlet 儲存器建立自訂內容。 在管理主控台中依循下列路徑:
      1. 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name
      2. 按一下 SIP 儲存器
      3. 其他內容之下,按一下自訂內容 > 新建
      4. 名稱欄位中,輸入 javax.sip.max.object.pool.size
      5. 欄位中,輸入 1000
      6. 按一下確定
      7. 名稱欄位中,輸入 max.tu.pool.size
      8. 欄位中,輸入 1000
      9. 按一下確定
      10. 在「名稱」欄位中,輸入 com.ibm.sip.sm.lnm.size
      11. 在「值」欄位中,輸入 8
      12. 按一下確定
    3. 如果「使用者資料封包通訊協定」(UDP) 是 SIP 資料流量的主要傳輸模式,則為 SIPUDP 通道建立自訂內容。 在管理主控台中依循下列路徑:
      1. 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name
      2. 按一下 SIP 儲存器 > 傳輸鏈 > SIPCInboundDefaultUDP > UDP 入埠通道 (UDP1)
      3. 其他內容之下,按一下自訂內容 > 新建
      4. 名稱欄位中,輸入 receiveBufferSizeSocket
      5. 欄位中,輸入 3000000
      6. 按一下「確定」。
      7. 名稱欄位中,輸入 sendBufferSizeSocket
      8. 欄位中,輸入 3000000
    4. 指定 SIP Servlet 儲存器一般內容。 在管理主控台中依循下列路徑:
      1. 按一下伺服器 > 伺服器類型 > WebSphere 應用程式伺服器 > server_name
      2. 輸入「應用程式階段作業上限數目」的值。「應用程式階段作業上限數目」的值的計算方式為:Maximum call hold time or session timeout x Call rate x Safety factor(呼叫持續時間或階段作業逾時值上限 x 呼叫率 x 安全係數)。
      3. 輸入「每個平均期間的訊息數目上限」的值。「每個平均期間的訊息數目上限」值的計算方式為:Maximum call hold time or session timeout x Maximum rate of SIP messages x Safety factor(呼叫持續時間或階段作業逾時值上限 x SIP 訊息比率上限 x 安全係數)。
      4. 輸入「分派佇列大小上限」的值。「分派佇列大小上限」值的計算方式為:Maximum rate of SIP messages x Maximum latency in SIP processing x Safety factor(SIP 訊息比率上限 x SIP 處理的延遲上限 x 安全係數)。
      5. 將執行緒儲存區設為新建立的 SIP 儲存器執行緒儲存區(設定為下拉名稱 "SipContainer")。
    5. 調整 Java 虛擬機器 (JVM) 記憶體回收原則。 在管理主控台中依循下列路徑:
      1. 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name
      2. 在「伺服器基礎架構」之下,按一下 Java 和程序管理 > 程序定義
      3. [z/OS]按一下控制
      4. 其他內容下,按一下 Java 虛擬機器
      5. 在「通用 JVM 引數」欄位中,以連續的一行輸入下列值:「-Xmn150m -Xgcpolicy:gencon -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000」。
      最佳作法 最佳作法:
      • 您可以在「起始資料堆大小」和「資料堆大小上限」欄位中新增 1500 MB 的值。
      • 建議您在效能測試或調整作業期間,啟用詳細記憶體回收選項。
      • 如果您的應用程式會配置 64 KB 以上的物件,在資料堆中保留大型物件區域 (LOA) 將有所助益。這是透過新增 JVM 引數 - Xloaminimum0.xy 來完成的,其中 xy 指出要為大型物件保留的資料堆百分比。如需 JVM 引數的相關資訊,請參閱《Java 診斷引導第 6 版》。
      bprac

指出主題類型的圖示 作業主題



時間戳記圖示 前次更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
檔名:tsip_tunelinux.html