sar コマンド: システムのパフォーマンスを監視する魔法の杖

システム管理者や開発者にとって、システムのパフォーマンスを監視することは非常に重要です。特に、Linux環境では、sar
コマンドがその役割を果たします。sar
コマンドは、System Activity Reporterの略で、システムのさまざまなリソースの使用状況をレポートするために使用されます。この記事では、sar
コマンドの基本的な使い方から、その応用までを詳しく解説します。
sar コマンドの基本
sar
コマンドは、システムのCPU使用率、メモリ使用量、ディスクI/O、ネットワークトラフィックなどの情報を収集し、レポートとして出力します。このコマンドは、sysstat
パッケージに含まれており、多くのLinuxディストリビューションでデフォルトでインストールされています。
インストール方法
まず、sysstat
パッケージがインストールされているか確認します。インストールされていない場合は、以下のコマンドでインストールできます。
sudo apt-get install sysstat # Ubuntu/Debian
sudo yum install sysstat # CentOS/RHEL
基本的な使い方
sar
コマンドを実行するには、以下のようにします。
sar
このコマンドを実行すると、現在のシステムのCPU使用率が表示されます。しかし、sar
コマンドの真価は、過去のデータを収集し、分析できる点にあります。
データの収集と保存
sar
コマンドは、cron
ジョブを通じて定期的にシステムのデータを収集し、/var/log/sysstat/
ディレクトリに保存します。このデータは、後で分析するために使用できます。
データの表示
過去のデータを表示するには、以下のようにします。
sar -f /var/log/sysstat/saXX
ここで、saXX
は、日付に対応するファイル名です。例えば、sa01
はその月の1日のデータを表します。
詳細なレポートの取得
sar
コマンドは、さまざまなオプションを提供しており、特定のリソースに焦点を当てた詳細なレポートを取得できます。
CPU使用率の詳細
CPU使用率の詳細を表示するには、以下のようにします。
sar -u
このコマンドは、ユーザー空間、カーネル空間、アイドル時間などの詳細なCPU使用率を表示します。
メモリ使用量の詳細
メモリ使用量の詳細を表示するには、以下のようにします。
sar -r
このコマンドは、使用中のメモリ、空きメモリ、バッファメモリ、キャッシュメモリなどの詳細を表示します。
ディスクI/Oの詳細
ディスクI/Oの詳細を表示するには、以下のようにします。
sar -d
このコマンドは、各ディスクデバイスの読み書き速度、I/O待ち時間などの詳細を表示します。
ネットワークトラフィックの詳細
ネットワークトラフィックの詳細を表示するには、以下のようにします。
sar -n DEV
このコマンドは、各ネットワークインターフェースの送受信トラフィック、エラーパケット数などの詳細を表示します。
応用例
sar
コマンドは、単にシステムの状態を監視するだけでなく、パフォーマンスチューニングやトラブルシューティングにも役立ちます。
パフォーマンスチューニング
システムのボトルネックを特定するために、sar
コマンドを使用して、CPU、メモリ、ディスクI/O、ネットワークトラフィックの詳細を分析します。例えば、CPU使用率が高い場合、どのプロセスがCPUを多く使用しているかを特定し、そのプロセスの最適化を図ります。
トラブルシューティング
システムが遅い、または応答しない場合、sar
コマンドを使用して、過去のデータを分析し、問題の原因を特定します。例えば、ディスクI/Oが高い場合、ディスクの読み書きがボトルネックになっている可能性があります。
関連Q&A
Q1: sar
コマンドで収集したデータはどのくらいの期間保存されますか?
A1: sar
コマンドで収集したデータは、デフォルトで7日間保存されます。ただし、/etc/sysstat/sysstat
ファイルを編集することで、保存期間を変更できます。
Q2: sar
コマンドで特定の時間帯のデータだけを表示するにはどうすればいいですか?
A2: sar
コマンドに-s
と-e
オプションを指定することで、特定の時間帯のデータだけを表示できます。例えば、以下のコマンドは、10時から12時までのデータを表示します。
sar -s 10:00:00 -e 12:00:00
Q3: sar
コマンドでリアルタイムのデータを表示するにはどうすればいいですか?
A3: sar
コマンドに-o
オプションを指定することで、リアルタイムのデータを表示できます。例えば、以下のコマンドは、1秒間隔でリアルタイムのCPU使用率を表示します。
sar -u 1
Q4: sar
コマンドでネットワークインターフェースの詳細を表示するにはどうすればいいですか?
A4: sar
コマンドに-n DEV
オプションを指定することで、ネットワークインターフェースの詳細を表示できます。例えば、以下のコマンドは、各ネットワークインターフェースの送受信トラフィックを表示します。
sar -n DEV
Q5: sar
コマンドでディスクI/Oの詳細を表示するにはどうすればいいですか?
A5: sar
コマンドに-d
オプションを指定することで、ディスクI/Oの詳細を表示できます。例えば、以下のコマンドは、各ディスクデバイスの読み書き速度を表示します。
sar -d
以上が、sar
コマンドの基本的な使い方から応用までを解説した記事です。sar
コマンドを活用して、システムのパフォーマンスを最大限に引き出しましょう。