メインコンテンツへスキップ
検索

TCP_OSからSTCPに移行した人がすぐに気づくことは、TCP_OSのnetstatコマンドで表示されるTCP統計情報のセットが、STCPで表示されるものよりもかなり豊富であるということです。STCPのnetstat統計は、標準的なRFC-1213 TCP統計を表示します。重複したACK、重複したデータ、順不同のパケット、ウィンドウプローブ数などの統計情報は表示されません。しかし、統計情報の多くは、 analyze_system stcp_meters リクエストで表示される出力の一部として利用できます。以下のコマンドを試してみてください。
analyze_system -request_line 'stcp_meters -all -long' -quit

stratadocstcp_meters の引数と出力については、OpenVOS System Analysis (R073) のマニュアルに記載されています。データセットは TCP_OS コマンドと同じではありません。"再送で落とされた接続" のようないくつかのカウンタが欠けていますが、"window set zero after receive" のような新しいカウンタもあります。また、カウンタのパーセンテージが自動的に計算されて表示されるのも良い点の一つです。

TCP_OSとSTCPの両方のnetstat TCP統計の大きな問題は、モジュール全体を対象としていることで、これまでに存在した(少なくとも現在のブートでは)各接続のカウンタが、表示された値を得るために一緒に加算されることです。許容できない再送などの問題は、1つまたはいくつかのコネクションに影響を与えているため、全体のカウントでは失われてしまうことがあります。デフォルトの stcp_meters の動作にも同じ問題があり、現在の起動時からのすべての接続のカウンタを集計しています。PCBのアドレスを見つけるには、PCB_addrを引数にとってnetstatを実行します。netstatが完了すると、関心のある接続を見つけ、PCBアドレスが最初の列に表示されます。

次のマクロは、netstat を実行し、関心のある接続を見つけ、PCB アドレスを抽出し、stcp_meters を実行します。このマクロは、PCB アドレスがわかっている場合は PCB アドレスを取得するか (その場合、上記のステップのほとんどをスキップします)、興味のある接続を識別するのに役立つ 2 つの文字列を取得します。使用法メッセージは、文字列がローカルIPアドレス、ローカルポート番号、リモートIPアドレス、リモートポート番号であることを示しています。これにより、接続を一意に識別することができますが、ローカルポート番号とリモートIPアドレスだけなど、もっと少ない文字列でもよいかもしれません。指定した文字列が複数の接続を識別する場合は、各接続のメーターが表示されます。メーターの上には netstat 行が表示され、メーターが何のための接続なのかを識別します。

すべての確立された接続のメーターを表示したい場合は、次のコマンドを試してみてください。
get_connection_meters -local ESTAB -remote .

この例では、引数はローカルとリモートのアドレスではなく、ESTABLISHED状態とコロンを含む行を表します。

& get_connection_metersここから始まる
&
& get_connection_meters.cm
& バージョン 1.0 09-04-06
[email protected]
&
&begin_parameters
 LOCAL オプション (-local),文字列
 REMOTE オプション (-remote),文字列
PCBオプション(-pcb),文字列
終了パラメータ
&
余計なものが結果ファイルにエコーされないようにする
if (process_type) = 'バッチ' &then &do
set_ready -format off
コマンドラインがありません。
終り
&
if (長さ &PCB&) > 0
そのあと
   if (長さ &LOCAL&) > 0
       その後 &then &goto ERROR_ADDRESS
   if (length &REMOTE&) > 0
       その後 &then &goto ERROR_ADDRESS
   analyze_system -request_line (string stcp_meters &PCB& -all -long) -quit
   復帰
終り
&
set_string FILE_1 (process_dir)>connect_stcp_meters_1.temp
set_string FILE_2 (process_dir)>connect_stcp_meters_2.temp
&
if (長さ &LOCAL&) = 0
    その後 &then &goto ERROR_ADDRESS
if (length &REMOTE&) = 0
    その後 &then &goto ERROR_ADDRESS
attach_default_output &FILE_1&
netstat -numeric -PCB_addr
デフォールト出力
&
display &FILE_1& -match &LOCAL& -output_path &FILE_2& -no_header
display &FILE_2& -match &REMOTE& -output_path &FILE_1& -no_header
&
アタッチ入力
ぶんせきシステム
&set LINE 1
ラベル AGAIN
set_string CONNECTION (コンテンツ &FILE_1& &LINE& -hold)
if (end_of_file &FILE_1&) = 1 &then &do
    if &LINE& = 1
       その後 &then &goto ERROR_NOT_FOUND
       誤差があった場合は
          辞める
          復帰
       終り
終り
&
..display_line ============================================================
..display_line ============================================================
表示行
.display_line &CONNECTION&の行を表示します。
表示行
set_string PCB (substr (string &CONNECTION&) 1 8)
stcp_meters &PCB& -all -long
&set LINE (calc &LINE& + 1)
もう一度行く
&
&
ラベル ERROR_NOT_FOUND
辞める
表示行
表示行
display_line netstat 出力で指定された接続が見つかりませんでした。
display_line &LOCAL& &REMOTE&
復帰
&
ラベル ERROR_ADDRESS
表示行
display_line PCB またはローカルとリモートの両方の IP:ポートを入力する必要があります。
display_line 使用法。
display_line ' get_connection_meters -pcb PCB'
表示行 ' or'
display_line ' get_connection_meters -local IP:PORT -remote IP:PORT'
復帰
&
& get_connection_metersはここまで
メニューを閉じる

© 2024 Stratus Technologies.