Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java System Portal Server 6 2005Q4 配備計画ガイド 

付録 B
分析ツール

Sun JavaTM Enterprise System および SDK には、インストール後すぐに満足のいく体験ができるようにデフォルトの設定オプションが用意されています。ただし、デフォルトのオプションが、Sun Java System Portal Server 本稼働環境の Web アプリケーションのパフォーマンスを最高にするとはかぎりません。ここでは、いくつかの代わりのオプションと基本的なチューニング技術について説明します。


ここで説明するチューニング設定は、Solaris プラットフォームに存在する Portal Server に焦点を合わせています。ただし、この原則はその他の一般的な Unix タイプのオペレーティングシステムに適用できます。


次の表 B-1 は、Portal Server とその Web コンテナのチューニングのためのフィードバックの提供に役立つパフォーマンス分析ツールを示しています。パフォーマンスの問題以外にも、それらのツールの多くは、オペレーティングシステムレベル全体でのその他のタイプの障害を検出するのに使用できます。

多くのツールの説明には、出力の例、出力結果の解釈の仕方についての提案、出力結果の改善方法についてのヒント、および関連サイトへのリンクが含まれています。

表 B-1 パフォーマンス分析ツール 

カテゴリ

タイプ

名前

パラメータ

用途

分析ツール

Solaris 8 と Solaris 9

mpstat

 

CPU の使用率

 

 

iostat

 

ディスク入出力サブシステム

 

 

netstat

 

ネットワークサブシステム

 

 

 

-I hme) 10

インタフェース帯域幅

 

 

 

-sP tcp

TCP カーネルモジュール

 

 

 

-a|grep hostname|wc-1

ソケット接続カウント

 

アプリケーションサーバーコンテナ上の Portal Server

verbose:gc

 

ガーベジコレクション

チューニングパラメータ

Solaris 8 と Solaris 9

 

/etc/system

各種

パフォーマンス

 

 

/etc/rc2.d/tチューニングパラメータファイル

各種

TCP カーネルチューニングパラメータ


mpstat

mpstat ユーティリティーは、CPU の使用率を監視するのに役立つツールです。特に、企業ソリューションによくある構成の、マルチプロセッサマシンで実行されるマルチスレッドアプリケーションの CPU の使用率の監視に役立ちます。

mpstat には、5 〜 10 秒の引数を使用します。

5 〜 10 秒よりも短い期間を分析するのは難しくなります。期間を長くすると、誤った結果につながる急激な値の上昇をなくしてデータを滑らかにすることができる場合があります。

出力

#mpstat 10

CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl

  0    1   0 5529   442  302  419  166   12  196    0   775   95   5   0   0

  1    1   0  220   237  100  383  161   41   95    0   450   96   4   0   0

  4    0   0   27   192  100  178   94   38   44    0   100   99   1   0   0

 

注意点

特定の CPU では intr および ithr の値がかなり大きいことに注意してください。Solaris はシステムの割り込みを処理するために CPU をいくつか選択します。選択される CPU および数は、システムに接続された入出力デイバス、それらのデバイスの物理的な場所、また CPU に対して割り込みが禁止されている (psradmin コマンド) かどうかによって決定されます。

考慮点

アプリケーションが、効率的に使用できるだけの数の CPU を利用できるようにします。たとえば、1 つのインスタンスに 2 つの CPU を使用するとパフォーマンスが最高になります。14 個の 2 CPU プロセッサセットを作成すると、パフォーマンスが最高になると予想できます。

csw 値の増加は、ネットワークの使用の増加を示します。一般的に、csw 値が高くなるのは、接続をプーリングしないため、または新しい接続を非効率的に扱うために、ソケット接続が多数作成された結果が原因です。この場合は、netstat -a | wc -l を実行すると、TCP 接続の数も多いことがわかります。netstat のセクションを参照してください。

icsw の増加がみられるなら、その一般的な原因はプリエンプションです。多くの場合、プリエンプションは CPU のタイムスライスが終了したことによって生じます。


iostat

iostat ツールは、ディスク入出力サブシステムの統計情報を提供します。iostat コマンドには、多数のオプションがあります。詳細は、マニュアルページを参照してください。次に示す典型的なオプションは、入出力の障害を特定するための情報を提供します。

出力

#iostat -xn 10

                      extended device statistics

    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device

    0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0 fd0

    2.7   58.2   14.6 2507.0  0.0  1.4    0.0   23.0   0  52 d0

    47.3   0.0 2465.6    0.0  0.0  0.4    0.0    8.8   0  30 d1

 

注意点
考慮点

ファイルシステムにさらにディスクを追加します。単一ディスクファイルシステムを使用している場合は、ハードウェアまたはソフトウェアの RAID へのアップグレードが次にとるべき手段です。ハードウェアの RAID は、ソフトウェアの RAID よりもかなり高速であり、強くお勧めします。ソフトウェアの RAID ソリューションは、システムの CPU にさらに負荷をかけます。

ストレージのハードウェアまたはソフトウェアの動作によっては、ufs のデフォルト値の 8192K バイト以外のブロックサイズを使用するほうがよい場合があります。『Solaris System 管理ガイド』を参照してください。


netstat

netstat ツールは、ネットワークサブシステムの統計情報を提供します。このツールは、ネットワークサブシステムのさまざまな側面を分析するのに使用できます。分析対象には TCP/IP カーネルモジュールとインタフェースの帯域幅の 2 つが含まれます。両方に対する分析の概要を次に示します。

netstat -I hme0 10

これらの netstat オプションは、インタフェースの帯域幅の分析に使用されます。現在のスループットの上限 (最大) は、出力から算出できます。netstat の出力はパケットのメトリックスを報告しますが、これは必ずしもパケットの最大サイズである必要はないので、上限が報告されます。帯域幅の上限は、次の式で求めることができます。

使用される帯域幅 = (パケットの総数) / (ポーリング間隔 (10)) * MTU (1500 デフォルト)。

インタフェースの現在の MTU は、ifconfig -a で確認できます。

注意点
考慮点

これらの netstat オプションは、TCP カーネルモジュールの分析に使用されます。報告されるフィールドの多くは、障害を示す、カーネルモジュール内のフィールドを表します。それらの障害には、ndd コマンドおよび /etc/inet で参照されるチューニングパラメータを使用して対処できます。

netstat -sP tcp の出力
注意点
考慮点
注意点
次の点を考慮します。


/etc/system のチューニングパラメータ

表 B-2 は、パフォーマンスの調査時に使用される /etc/system のチューニングパラメータを示しています。変更は、それぞれを /etc/system ファイルに追加することによって適用されます。

表 B-2 /etc/system オプション

/etc/system オプション

説明

set rlim_fd_max=<value>

1 つのプロセスが開くことがある、ファイル記述子の「強力な」制限。この制限を無効にするには、スーパーユーザー権限が必要です。

set tcp:tcp_conn_hash_size=<value>

すべての TCP 接続用の TCP モジュール内のハッシュテーブルのサイズを制御します。

tune_t_flushr とともに、autoup は各呼び出しでダーティーページの検索対象になるメモリーの量とファイルシステムの同期操作の頻度を制御します。

set autoup=<value>

autoup の値は、バッファーを空きリストから書き出すかどうかを制御するためにも使用されます。B_DELWRI フラグ (変更されたファイルコンテンツページ) でマークされたバッファーは、autoup 秒よりも長い間、空きリストにあると書き出されます。

autoup の値を大きくすると、バッファーがメモリーにある時間をさらに長くできます。

set tune_t_fsflushr=<value>

fsflush 呼び出しの間隔を秒数で指定します。

set rechoose_interval=<value>

プロセスが最後に実行された CPU とのすべての関係がなくなったとみなされる前のクロック刻み数。この期間が過ぎると、どの CPU もスレッドをスケジュールするための候補とみなされます。このパラメータは、タイムシェアリングクラスのスレッドにだけ関係します。リアルタイムスレッドは、最初に利用できる CPU にスケジュールされます。

すべての /etc/system パラメータの説明は、『Solaris Tunable Parameters Reference Manual』を参照してください。

表 B-3 は、TCP カーネルチューニングパラメータの一覧です。それらは、Portal Server のほとんどのパフォーマンスに影響することがわかっている TCP チューニングパラメータです。それらのパラメータの推奨値は、『Identity Server Customization and API Guide』を参照してください。

表 B-3 TCP/IP オプション

TCP/IP オプション

説明

ndd -set /dev/tcp tcp_xmit_hiwat 65535

ndd -set /dev/tcp tcp_recv_hiwat 65535

バイト単位のデフォルトの送信ウィンドウサイズ。バイト単位のデフォルトの受信ウィンドウサイズ。

ndd -set /dev/tcp tcp_cwnd_max 65535

バイト単位の TCP 輻輳ウィンドウ (cwnd) の最大値。

ndd -set /dev/tcp tcp_rexmit_interval_min 3000

ミリ秒単位のデフォルトの最小再転送タイムアウト (Retransmission Timeout、RTO) 値。どの TCP 接続の計算して求めた RTO も、この値以上である必要があります。

ndd -set /dev/tcp tcp_rexmit_interval_max 10000

ミリ秒単位のデフォルトの最大再転送タイムアウト (Retransmission Timeout、RTO) 値。どの TCP 接続の計算して求めた RTO も、この値以下である必要があります。

ndd -set /dev/tcp tcp_rexmit_interval_initial 3000

ミリ秒単位のデフォルトの初期再転送タイムアウト (Retransmission Timeout、RTO) 値。

ndd -set /dev/tcp tcp_time_wait_interval 60000

TCP 接続が TIME-WAIT 状態にあるミリ秒単位の時間。詳細は、RFC 1122, 4.2.2.13 を参照してください。

ndd -set /dev/tcp tcp_keepalive_interval 900000

TCP 接続が KEEP-ALIVE 状態にあるミリ秒単位の時間。詳細は、RFC 1122, 4.2.2.13 を参照してください。

ndd -set /dev/tcp tcp_conn_req_max_q <value>

accept(SOCKET) によって受け入れられるのを TCP リスナーが待機している保留中の TCP 接続のデフォルトの最大数。

ndd -set /dev/tcp tcp_conn_req_max_q0 <value>

TCP リスナーが待機している未完了 (3 方向ハンドシェークがまだ終わっていない) の保留中の TCP 接続のデフォルトの最大数。

ndd -set /dev/tcp tcp_ip_abort_interval <value>

TCP 3 方向ハンドシェークの詳細は、RFC 793 を参照してください。

ndd -set /dev/tcp tcp_ip_abort_interval <value>

TCP 接続に関するミリ秒単位のデフォルトの合計再転送値。特定の TCP 接続で、TCP が tcp_ip_abort_interval の間再転送を行なっているが、この期間にもう一方の終端から肯定応答を受信しない場合、TCP はこの接続を閉じます。



前へ      目次      索引      次へ     


Part No: 819-4618.   Copyright 2005 Sun Microsystems, Inc. All rights reserved.