![[Linux]](../images/linux.gif)
針對 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 測試過,並且依現狀提供,不含任何隱含保證。
程序
- 調整 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
- 調整 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
- 對 WebSphere® Application Server 進行 SIP 調整。 您可以使用下列步驟,對 WebSphere Application Server 進行 SIP 調整。
- 為 SIP Servlet 儲存器建立個別的執行緒儲存區。 在管理主控台中依循下列路徑:
- 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name。
- 在「其他內容」之下,按一下執行緒儲存區 > 新建。
- 在「名稱」欄位中,輸入 SipContainer。
- 在大小下限及大小上限欄位中,輸入 15。這些值對於大部分應用程式而言已經足夠。
- 按一下確定。
- 為 SIP Servlet 儲存器建立自訂內容。 在管理主控台中依循下列路徑:
- 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name。
- 按一下 SIP 儲存器。
- 在其他內容之下,按一下自訂內容 > 新建。
- 在名稱欄位中,輸入 javax.sip.max.object.pool.size。
- 在值欄位中,輸入 1000。
- 按一下確定。
- 在名稱欄位中,輸入 max.tu.pool.size。
- 在值欄位中,輸入 1000。
- 按一下確定。
- 在「名稱」欄位中,輸入 com.ibm.sip.sm.lnm.size。
- 在「值」欄位中,輸入 8。
- 按一下確定。
- 如果「使用者資料封包通訊協定」(UDP) 是 SIP 資料流量的主要傳輸模式,則為 SIPUDP 通道建立自訂內容。 在管理主控台中依循下列路徑:
- 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name。
- 按一下 SIP 儲存器 > 傳輸鏈 > SIPCInboundDefaultUDP > UDP 入埠通道 (UDP1)。
- 在其他內容之下,按一下自訂內容 > 新建。
- 在名稱欄位中,輸入 receiveBufferSizeSocket。
- 在值欄位中,輸入 3000000。
- 按一下「確定」。
- 在名稱欄位中,輸入 sendBufferSizeSocket。
- 在值欄位中,輸入 3000000。
- 指定 SIP Servlet 儲存器一般內容。 在管理主控台中依循下列路徑:
- 按一下伺服器 > 伺服器類型 > WebSphere 應用程式伺服器 > server_name。
- 輸入「應用程式階段作業上限數目」的值。「應用程式階段作業上限數目」的值的計算方式為:Maximum call hold time or session timeout x Call rate x Safety factor(呼叫持續時間或階段作業逾時值上限 x 呼叫率 x 安全係數)。
- 輸入「每個平均期間的訊息數目上限」的值。「每個平均期間的訊息數目上限」值的計算方式為:Maximum call hold time or session timeout x Maximum rate of SIP messages x Safety factor(呼叫持續時間或階段作業逾時值上限 x SIP 訊息比率上限 x 安全係數)。
- 輸入「分派佇列大小上限」的值。「分派佇列大小上限」值的計算方式為:Maximum rate of SIP messages x Maximum latency in SIP processing x Safety factor(SIP 訊息比率上限 x SIP 處理的延遲上限 x 安全係數)。
- 將執行緒儲存區設為新建立的 SIP 儲存器執行緒儲存區(設定為下拉名稱 "SipContainer")。
- 調整 Java 虛擬機器 (JVM) 記憶體回收原則。 在管理主控台中依循下列路徑:
- 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name。
- 在「伺服器基礎架構」之下,按一下 Java 和程序管理 > 程序定義。
按一下控制。
- 在其他內容下,按一下 Java 虛擬機器。
- 在「通用 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 版》。
- 為 SIP Servlet 儲存器建立個別的執行緒儲存區。 在管理主控台中依循下列路徑:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
檔名:tsip_tunelinux.html