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

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コマンドを活用して、システムのパフォーマンスを最大限に引き出しましょう。