前へ     目次     索引     DocHome     次へ     
iPlanet Application Server パフォーマンスおよびチューニングガイド



第 6 章   オペレーティングシステムのチューニング


Solaris® ネットワークには、iPlanet Application Server に直接役立つわけではありませんが、データセンタのアプリケーション群で実行するほかのソケット集約型カスタマアプリケーションに役立つパフォーマンスチューニングのヒントがいくつかあります。

Solaris の TCP/IP 設定をチューニングすると、多数のソケットを開閉するプログラムにとっての利点があります。iPlanet Application Server は小規模の固定されたコネクションセットで動作し、パフォーマンスの向上は Application Server ノード上でのように顕著ではありません。iPlanet Web Server と、iPlanet Application Server の Web フロントエンドとして設定されている iPlanet Web Servers には、多くの有利な点があります。

再起動後にこのような変化を維持するために、次のファイルに ndd 変数を設定します。
/etc/rc2.d/S69inet

この章には次のトピックがあります。



待機間隔時間の設定

クライアントとサーバの両方で接続が閉じられると、しばらくポートが利用できなくなるので、新しいプログラムは以前のプログラム用のパケットを受け取ることができません。Solaris をインストールしたマシンでは、tcp_time_wait_interval のデフォルト値は 240,000 ミリ秒 (4 分) です。この値を 60000 ミリ秒 (1 分) か 30000 ミリ秒 (30 秒) に設定し、ソケット通信集約型プログラムのパフォーマンスを上げることをお勧めします。値は、動作中のシステムで変更し、確認できます。

/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 60000

/usr/sbin/ndd -get /dev/tcp tcp_time_wait_interval



TCP コネクションハッシュテーブルサイズの設定



コネクションハッシュテーブルはアクティブな TCP コネクション (ndd -get /dev/tcp tcp_conn_hash) のすべての情報を記録します。この値によってコネクションの数が制限されることはありませんが、コネクションハッシュに時間がかかることがあります。検索効率をよくするために、サーバで予想される同時 TCP コネクション数の半分に設定します (netstat -nP tcp|wc -l でコネクションの数がわかります)。デフォルトは 512 です。設定は /etc/system だけで行うことができ、起動時に有効になります。

set tcp:tcp_conn_hash_size=8192



プロセスのバインド



Solaris で動作する iPlanet Application Server の以前のバージョンでは、アプリケーションサーバのプロセスを 1 つまたは複数のプロセッサにバインドすると、パフォーマンスが大幅に向上しました (20 〜 30%)。ただし、Solaris 8 の SP2 以後のリリースではパフォーマンスの大きな向上は見られません。そのため、この設定はお勧めしません。

KJS ごとに少なくとも 1 つの CPU をバインドすることをお勧めします。最近の JVM は並行アプリケーション上で複数のプロセッサ (最大 32 個の CPU) に拡張するので、使用可能なプロセッサを小さなセットに分けて KJS プロセスにそれぞれバインドすることもできます。

psrinfo コマンドは、オンライン状態のプロセッサの一覧を出力します。

pbind -b <processor_id> <process_id> を使って、<process_id> で識別されるプロセスを <processor_id> で識別されるプロセッサにバインドすることができます。たとえば、KJS プロセス ID が 6543 の場合、$ pbind -b 0 6543 はプロセス (id=6543) を CPU 0 にバインドします。

$ psrset -c 1 9 は、CPU 19 から成る新しいプロセッサを作成します。新しいセットの ID が出力されます。

この例のプロセス 6543 をここで新しく作成したプロセッサのセットに
$ psrset -b <processor_set_id> 6543 としてバインドできます。

詳細については、Man ページを参照してください。参照するのは KJS プロセスの pid であり、KJS プロセスを生成するシェルスクリプトの pid ではないことに注意してください。

KXS でも同じような方法が使えます。KXS は CPU 2 個まで適切に拡張し、KJS プロセス当たり最大 8 つの JVM をビジー状態に保持することがわかっています。

pbind -q は、現在のプロセッサとプロセスバインディングを表示します。


前へ     目次     索引     DocHome     次へ     
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.

最新更新日 2002 年 3 月 6 日