9.2. パフォーマンスの問題の監視と診断

Red Hat Enterprise Linux 7 ではシステムパフォーマンスの監視およびネットワークを構成しているサブシステムに関連するパフォーマンスの問題の診断などを行う際に便利なツールをいくつか用意しています。本セクションでは使用できるツールについて簡単に説明し、ネットワーク関連のパフォーマンス問題の監視と診断を行う方法について例を用いて説明していきます。

9.2.1. ss

ss はソケットに関する統計情報を出力するコマンドラインユーティリティーで長期間に渡りデバイスパフォーマンスの評価を行うことができます。デフォルトでは接続を確立していてリスニングを行っていないオープンの TCP ソケットが表示されますが、特定のソケットに関する統計を出力から除去できる便利なオプションがいくつか用意されています。
Red Hat Enterprise Linux 7 では netstat 経由での ss を推奨しています。
ssiproute パッケージで提供されます。詳細については man ページをご覧ください。
$ man ss

9.2.2. ip

ip ユーティリティーを使用するとルート、デバイス、ルーティングポリシー、トンネルなどの管理と監視を行うことができます。ip monitor では引き続きデバイス、アドレス、ルートなどの状態を監視することができます。
ipiproute パッケージで提供されます。ip の使い方については man ページをご覧ください。
$ man ip

9.2.3. dropwatch

Dropwatch はカーネルでドロップされたパケットの監視と記録ができるインテラクティブなツールになります。
詳細については dropwatch の man ページをご覧ください。
$ man dropwatch

9.2.4. ethtool

ethtool ユーティリティーを使用するとネットワークインターフェースカードの設定を表示したり編集したりすることができます。特定デバイスでドロップされたパケット数などの統計情報を監視する場合に便利です。
ethtool -S に監視したいデバイス名を付けて使用するとそのデバイスのカウンターの状態を表示させることができます。
$ ethtool -S devname
詳細については man ページをご覧ください。
$ man ethtool

9.2.5. /proc/net/snmp

/proc/net/snmp には IP、ICMP、TCP、UDP などの監視と管理のため snmp エージェントで使用されるデータが表示されます。このファイルを定期的にチェックして普段とは異なる値がないかを確認、パフォーマンス関連の問題となる可能性が潜んでいないか確認することができます。たとえば、/proc/net/snmp の UDP 入力エラー (InErrors) が増えている場合はソケット受信キューでの障害を示している可能性があります。

9.2.6. SystemTap を使ったネットワークの監視

Red Hat Enterprise Linux 7 SystemTap ビギナーズガイド』ではネットワークパフォーマンスのプロファイリングと監視に役立つサンプルスクリプトをいくつか紹介しています。
ネットワーク構成に関連し、ネットワークパフォーマンスの問題を診断する際に役立つ SystemTap のサンプルスクリプトを以下に示します。デフォルトでは /usr/share/doc/systemtap-client/examples/network ディレクトリーにインストールされます。
nettop.stp
5 秒ごとにプロセス一覧 (プロセス ID とコマンド)、送受信したパケット数、プロセスによって送受信されたデータ量を出力します。
socket-trace.stp
Linux カーネルの net/socket.c ファイル内の各関数をインストルメント化して、追跡データを出力します。
dropwatch.stp
5 秒ごとにカーネル内の場所で解放されたソケットバッファ数を出力します。シンボリック名を表示させる場合は --all-modules オプションを使用します。
latencytap.stp スクリプトは異なるタイプの待ち時間が 1 つ以上のプロセスに与える影響を記録します。30 秒ごとに待ち時間タイプの一覧がプロセスの待機した合計時間の降順 (待機時間が長い順) に分類されて出力されます。ストレージやネットワーク両方の待ち時間の原因を特定する際に役に立ちます。Red Hat では、待ち時間イベントの原因が特定できるようこのスクリプトには --all-modules オプションを使用することを推奨しています。デフォルトではこのスクリプトは /usr/share/doc/systemtap-client-version/examples/profiling ディレクトリーにインストールされます。
詳細は、『Red Hat Enterprise Linux 7 SystemTap ビギナーズガイド』を参照してください。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。