![[Linux]](../images/linux.gif)
Linux 用 SIP サーブレットのチューニング
Linux 2.6 カーネルで実行している場合の Session Initiation Protocol (SIP) サーブレットに関する調整のヒントを使用します。
このタスクについて
負荷がかかった状態の Session Initiation Protocol (SIP) サーブレットは、
メッセージを再送信するか、または呼び出しを取り止める場合があります。
UDP ソケット・キューがいっぱいになっている可能性があります。
冗長ガーベッジ・コレクション出力の検討結果は、
かなり長時間のガーベッジ・コレクションが行われていることを示しています (例えば、0.5 秒から 1.5 秒)。
この問題の原因は、
イーサネット・ドライバー、Linux® オペレーティング・システム、WebSphere® Application Server、
またはこれらの項目の組み合わせが、SIP アプリケーション用にチューニングされていないことにあります。
以下のレベルのチューニングを適用することができます。
注: 以下の推奨事項は、Red Hat Enterprise Linux 4 でのみテストされており、現状のまま提供され、いかなる黙示の保証もありません。
手順
- Linux イーサネット・ドライバーをチューニングします。
Linux イーサネット・ドライバーのチューニングは、最適なイーサネット・ドライバーを選択することで開始されます。 例えば、HS20 ブレード用の推奨ドライバーは、tg3-3.43b ドライバー (またはそれ以降) です。 以下のシェル・コマンドは、 Linux カーネルのイーサネット・ドライバーのチューニングに使用されています。
インストールされているイーサネット・ドライバーに応じて、これらのオプションの一部を変更しなければならない場合があります。/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 カーネルをチューニングします。 Linux カーネルのチューニングには、以下のコマンドを使用します。
この構成は、指定されたアプリケーションには最適でない可能性があり、 最良のパフォーマンスを得るためには構成を調整しなければならない場合があります。 しかし、これらの値は、開始点として使用することができます。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 サーブレット・コンテナー用に別個のスレッド・プールを作成します。 管理コンソールで以下のパスに従います。
- 「サーバー」 > 「サーバー・タイプ」 > 「WebSphere Application Server」 > server_name とクリックします。
- 「追加プロパティー」の下で、「スレッド・プール」 >「新規」をクリックします。
- 「名前」フィールドに、SipContainer を入力します。
- 「最小サイズ」フィールドと「最大サイズ」 15 を入力します。 これらの値は、ほとんどのアプリケーションに適切であるはずです。
- 「OK」をクリックします。
- SIP サーブレット・コンテナー用のカスタム・プロパティーを作成します。 管理コンソールで以下のパスに従います。
- 「サーバー」 > 「サーバー・タイプ」 > 「WebSphere Application Server」 > server_name とクリックします。
- 「SIP コンテナー」をクリックします。
- 「追加プロパティー」の下で、 「カスタム・プロパティー」>「新規」とクリックします。
- 「名前」フィールドに、javax.sip.max.object.pool.size と入力します。
- 「値」フィールドに、1000 と入力します。
- 「OK」をクリックします。
- 「名前」フィールドに、max.tu.pool.size と入力します。
- 「値」フィールドに、1000 と入力します。
- 「OK」をクリックします。
- 「名前」フィールドに、com.ibm.sip.sm.lnm.size を入力します。
- 「値」フィールドに 8 を入力します。
- 「OK」をクリックします。
- ユーザー・データグラム・プロトコル
(UDP) が SIP トラフィックのプライマリー・トランスポートの場合は、SIPUDP チャネル用のカスタム・プロパティーを作成します。 管理コンソールで以下のパスに従います。
- 「サーバー」 > 「サーバー・タイプ」 > 「WebSphere Application Server」 > server_name とクリックします。
- 「SIP コンテナー」>「トランスポート・チェーン」>「SIPCInboundDefaultUDP」 >「UDP インバウンド・チャネル (UDP1)」をクリックします。
- 「追加プロパティー」の下で、 「カスタム・プロパティー」>「新規」をクリックします。
- 「名前」フィールドに、receiveBufferSizeSocket と入力します。
- 「値」フィールドに、3000000 と入力します。
- 「OK」 をクリックします。
- 「名前」フィールドに、sendBufferSizeSocket と入力します。
- 「値」フィールドに、3000000 と入力します。
- SIP サーブレット・コンテナーの一般プロパティーを指定します。 管理コンソールで以下のパスに従います。
- 「サーバー」 > 「サーバー・タイプ」 > 「WebSphere Application Server」 > server_name とクリックします。
- 最大アプリケーション・セッション値を入力します。最大アプリケーション・セッション値は、 次の式で計算できます。 最大コール保持時間またはセッション・タイムアウト x コール・レート x 安全係数
- 最大メッセージ数/平均期間の値を入力します。最大メッセージ数/平均期間の値は、 次の式で計算できます。 最大コール保持時間またはセッション・タイムアウト x SIP メッセージの最大レート x 安全係数
- 最大ディスパッチング・キュー・サイズ値を入力します。 最大ディスパッチング・キュー・サイズ値は、次の式で計算できます。 SIP メッセージの最大レート x SIP 処理における最大待ち時間 x 安全係数
- スレッド・プールを新規に作成された SIP コンテナーのスレッド・プールに (ドロップダウン名の「SipContainer」に) 設定します。
- Java 仮想マシン (JVM) のガーベッジ・コレクション・ポリシーをチューニングします。 管理コンソールで以下のパスに従います。
- 「サーバー」 > 「サーバー・タイプ」 > 「WebSphere Application Server」 > server_name とクリックします。
- 「サーバー・インフラストラクチャー」の下で、「Java およびプロセス管理」 > 「プロセス定義」とクリックします。
「Control」をクリックします。
- 「追加プロパティー」の下で、 「Java 仮想マシン」をクリックします。
- 「汎用 JVM 引数」フィールドに、以下の値を連続した 1 行として入力します。 "-Xmn150m -Xgcpolicy:gencon -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000"
ベスト・プラクティス:
- 「初期ヒープ・サイズ」フィールドと 「最大ヒープ・サイズ」フィールドに値 1500 MB を追加することができます。
- パフォーマンス・テスト時やチューニング・オペレーション時には、 「冗長ガーベッジ・コレクション」オプションを有効にする ことをお勧めします。
- アプリケーションで 64 KB を超えるサイズのオブジェクトを割り振る場合は、 ヒープ内にラージ・オブジェクト・エリア (LOA) を予約すると便利です。 これは、JVM 引数 -Xloaminimum0.xy を追加することで行えます。 ここで、xy は、ラージ・オブジェクト用に予約するヒープのパーセンテージを示します。 JVM 引数について詳しくは、Java Diagnostics Guide 6 を参照してください。
- SIP サーブレット・コンテナー用に別個のスレッド・プールを作成します。 管理コンソールで以下のパスに従います。


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