プライマリ・コンテンツに移動
Oracle® Traffic Director管理者ガイド
11g リリース1 (11.1.1.9)
B66436-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

15.10 Solaris固有のチューニング

この項では、Solaris固有のチューニングについて説明します。これらのプラットフォーム固有のチューニングのヒントおよび実行するすべての変更は、システム上の他のプロセスに影響を与える可能性があることに注意してください。

15.10.1 単一のプロセスで開くファイル(ファイル・ディスクリプタの制限)

プラットフォームが異なると、1つのプロセスで一度に開くことができるファイル数の制限が異なります。ビジー状態のサイトでは、この数値を大きくします。Solarisシステムでは、/etc/systemファイルのrlim_fd_maxおよびrlim_fd_curを設定して、この制限を制御します。Solaris 11の場合、rlim_fd_maxのデフォルトは65536、rlim_fd_curのデフォルト値は256です。

/etc/systemファイルにこの変更またはなんらかの変更を加えた後は、新しい設定を有効にするため、Solarisを再起動します。また、Solarisを新しいバージョンにアップグレードする場合は、/etc/systemに追加したすべての行を削除し、その行がアップグレード後も有効であることを確認した後にのみ、追加しなおします。

この変更を行うもう一つの方法は、ulimit –n <value>コマンドを使用することです。このコマンドを使用する場合、システムの再起動は不要です。ただし、このコマンドはログイン・シェルを変更するのみであるのに対し、etc/systemファイルの編集はすべてのシェルに影響を与えます。

15.10.2 HTTPサーバーへの接続の失敗

Oracle Traffic Directorインスタンスに大きな負荷がかかり、クライアントで接続タイムアウトが発生する場合は、HTTPリスナー・バックログ・キューのサイズを増やすことができます。この設定値を増やすには、HTTPリスナーのリスニング・キューの値を編集します。

これに加えて、Solaris TCP/IPネットワーキング・コード内の制限値も増やす必要があります。次のコマンドを実行して変更されるパラメータは2つあります。

ipadm set-prop -p _conn_req_max_q=4096 tcp

ipadm set-prop -p _conn_req_max_q0=4096 tcp

これら2つの設定で、待機接続で満たされる可能性がある2つのSolarisリスニング・キューの最大値が増加します。設定_conn_req_max_qは、accept()コールからの戻りを待つ完了済の接続数を増やします。設定_conn_req_max_q0は、ハンドシェイクが未完了の接続の最大数を増やします。_conn_req_max_qおよび_conn_req_max_q0のデフォルト値はそれぞれ、128および1024です。

これらの変更の効果は、netstat -sコマンドを使用し、tcpListenDroptcpListenDropQ0およびtcpHalfOpenDropの値を見ることで監視できます。その値を確認してから、これらの値を調整します。カウンタが0でない場合は、最初に値を2048に調整し、netstatの出力の監視を継続します。

Oracle Traffic Directorで処理できる数よりも多くの接続を受け入れないでください。tcpListenDroptcpListenDropQ0およびtcpHalfOpenDropパラメータの値を2048に設定すると、通常は接続リクエストの失敗が減少し、4096までの値で改善効果が見られます。

HTTPリスナーのリスニング・キュー設定および、関連するSolarisの_conn_req_max_qおよび_conn_req_max_q0の設定は、Oracle Traffic Directorのスループットと一致することになります。これらのキューは、Webユーザーからの不規則な接続率を管理するバッファとして機能します。これらのキューを使用することで、Solarisでは、Oracle Traffic Directorで接続が処理されるまで、その接続を受け入れて保持できます。

15.10.3 TCPバッファリングのチューニング

TCPバッファリングは、send_bufパラメータおよびrecv_bufパラメータを使用してチューニングできます。これらのパラメータの詳細は、表15-1「パフォーマンス・ベンチマークのためのSolarisのチューニング」を参照してください。

15.10.4 ファイル・システム・メンテナンスの軽減

UNIXファイル・システム(UFS)ボリュームは、各ファイルがアクセスされた時刻を保持しています。使用中の環境ではファイルのアクセス時刻の更新が重要でない場合、/etc/vfstabのデータ・ボリュームのマウント・ポイントにnoatimeパラメータを追加することにより、アクセス時刻の更新をオフにできます。次に例を示します。

/dev/dsk/c0t5d0s6 /dev/rdsk/c0t5d0s6 /data0 ufs 1 yes noatime

注意:

noatimeパラメータは、ファイルが変更されたときにはアクセス時刻の更新をオフにせず、ファイルへのアクセスがあるとオフにします。

ZFSでは、zfs setコマンドを使用して、設定可能なデータセット・プロパティを変更できます。次の例では、tank/homeatimeプロパティをoffに設定します。

zfs set atime=off tank/home

15.10.5 ビジー状態のボリュームまたはディスクにおける長いサービス時間

Oracle Traffic Directorインスタンスのレスポンス時間は、ディスク・サブシステムのパフォーマンスに大きく影響されます。iostatユーティリティを使用して、ディスクのビジー状態やI/Oリクエストの完了の速さ(それぞれ%bおよびsvc_t columns)を監視できます。サービス時間は、ビジー状態が30%未満のディスクでは重要ではありません。ただし、よりビジーなディスクの場合は、サービス時間が20ミリ秒を超えないようにする必要があります。ビジーなディスクでサービスが遅い場合は、ディスク・パフォーマンスを向上させると、パフォーマンスがかなり改善する可能性があります。ビジーなディスクと負荷が少ないディスクが混在する場合は、ビジーなディスクから負荷が少ないディスクにファイルをいくつか移動して、負荷を分散します。

15.10.6 短期のシステム監視

Solarisでは、システム動作を追跡するツールがいくつか提供されています。それらの出力をファイルに取得して後日分析することもできますが、次に示すツールは、主としてリアル・タイムにシステム動作を監視するために用意されています。

  • iostat -x 60コマンドは、ディスク・パフォーマンスの統計を60秒間隔でレポートします。

    各ディスクのビジー状態の度合を確認するには、%b列を見ます。その時点でビジー状態が20%を超えるディスクについては、svct列でレポートされるサービス時間に注目します。その他の列は、I/O操作率、転送データ量などについての情報を示します。

  • vmstat 60コマンドは、仮想メモリー・アクティビティおよび一部のCPU統計を60秒間隔でまとめます。

    sr列を見ると、ページ・スキャン率を追跡できます。その率が高すぎる場合には対処します。また、us列、sy列およびid列を監視して、CPUの使用率を確認します。突然爆発的に増加する処理に対応するため、多くのCPUパワーを予約しておく必要があることに注意してください。また、r列を追跡して、CPU時間で競合するスレッド数を確認します。この数がCPU数の約4倍を超えたままの場合は、サーバーの並行性を減らします。

  • mpstat 60コマンドはCPU統計の詳細を表示し、dlstat show-link -i 60コマンドはネットワーク・アクティビティの概要を示します。

15.10.7 長期のシステム監視

前述のツールでシステム・パフォーマンスを監視することは重要ですが、その一方で、より長期のパフォーマンス履歴を収集することも、傾向の把握に役立つため、同様に重要です。たとえば、システムのベースライン・レコードは、システムの動作が悪くなり始めた場合に、何が変わったかのかを解明するのに役立ちます。次の手順を実行して、システム・アクティビティ・レポート・パッケージを有効化します。

  • 次のコマンドを実行します。

    svcadm enable system/sar
    
  • crontab -e sysコマンドを実行して、sa1コマンドおよびsa2コマンドを含む行からコメント文字#を削除します。サイトのアクティビティ・プロファイルに応じて、コマンドを実行する頻度および時間を調整できます。このファイルの形式の説明は、crontab manのページを参照してください。

    このコマンドを使用すると、システムにより/var/adm/saディレクトリのファイルにパフォーマンス・データが保存され、デフォルトで1か月保持されます。次に、sarコマンドを使用して、目的の期間の統計を調査します。

15.10.8 パフォーマンス・ベンチマークのためのチューニング

次の表は、パフォーマンスおよびスケーラビリティのベンチマークの際に使用されるSolarisのオペレーティング・システムのチューニングを示しています。これらの値は、目的の結果を得るためのシステムのチューニング方法の例を示しています。

表15-1 パフォーマンス・ベンチマークのためのSolarisのチューニング

パラメータ 有効範囲 デフォルト値 チューニング後の値 コメント

rlim_fd_cur

/etc/system

256

65536

ソフト制限

rlim_fd_max

/etc/system

65536

65536

プロセスのオープン・ファイル・ディスクリプタの制限。(関連するソケット、ファイルおよびパイプ(ある場合)の)予想される負荷の詳細の原因となります。

_time_wait_interval

ipadm set-prop

60000

600000

クライアントにも設定します。

_conn_req_max_q

ipadm set-prop

128

1024


_conn_req_max_q0

ipadm set-prop

1024

4096


_ip_abort_interval

ipadm set-prop

300000

600000


_keepalive_interval

ipadm set-prop

7200000

9000000

トラフィックの多いWebサイトでは、この値を低くします。

_rexmit_interval_initial

ipadm set-prop

1000

3000

再伝送が30-40%を超える場合、この値を高くします。

_rexmit_interval_max

ipadm set-prop

60000

100000


_rexmit_interval_min

ipadm set-prop

200

3000


smallest_anon_port

ipadm set-prop

32768

65535

クライアントにも設定します。

send_buf

ipadm set-prop

49152

128000

送信バッファを増やすため。

recv_buf

ipadm set-prop

128000

1048576

受信バッファを増やすため。