Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
9.2. パフォーマンスの問題の監視と診断
Red Hat Enterprise Linux 7 ではシステムパフォーマンスの監視およびネットワークを設定しているサブシステムに関連するパフォーマンスの問題の診断などを行う際に便利なツールをいくつか用意しています。本セクションでは使用できるツールについて簡単に説明し、ネットワーク関連のパフォーマンス問題の監視と診断を行う方法について例を用いて説明していきます。
9.2.1. ss
ss はソケットに関する統計情報を出力するコマンドラインユーティリティーで、管理者が時間とともにデバイスパフォーマンスを評価することができます。デフォルトでは、ss は、確立された接続があるオープンでリッスンしていない TCP ソケットを一覧表示しますが、特定のソケットに関する統計を管理者が除外するのに役立つオプションが多数あります。
Red Hat は、Red Hat Enterprise Linux 7 の netstat よりも ss を推奨しています。
ss は、iproute パッケージで提供されます。詳細は man ページをご覧ください。
$ man ss
9.2.2. ip
ip ユーティリティーを使用すると、管理者はルート、デバイス、ルーティングポリシー、およびトンネルを管理および監視できます。ip monitor コマンドは、デバイス、アドレス、およびルートの状態を継続的に監視できます。
ip は、iproute パッケージで提供されます。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-バージョン/examples/profiling
ディレクトリーにインストールされます。
詳細は、Red Hat Enterprise Linux 7 SystemTap ビギナーズガイドを参照してください。