UbuntuでユーザーごとにCPU使用率を監視する方法

UbuntuでユーザーごとにCPU使用率を監視する方法

Ubuntuでサーバーやシステムのリソース管理は非常に重要です。特に、複数のユーザーがいる環境では、各ユーザーごとのCPU使用率を監視することが、システムのパフォーマンスを最適化するために役立ちます。本記事では、UbuntuでユーザーごとのCPU使用率を監視する方法について詳しく解説します。

1. `top` コマンドでCPU使用率を確認する

top コマンドを使うことで、リアルタイムでCPU使用率を確認することができます。以下のコマンドで、CPU使用率を表示するトッププロセスを監視します。

top

表示される画面で、P キーを押すとCPU使用率でソートされます。

2. `htop` コマンドでより詳細な情報を確認する

htop は、top よりも視覚的に優れたツールで、より詳細な情報を提供します。htop をインストールし、実行するには以下のコマンドを使います。

sudo apt-get install htop
htop

htop の画面では、プロセスごとのCPU使用率を簡単に確認できます。

3. `ps` コマンドを使ったスクリプトでユーザーごとの使用率を取得する

ps コマンドを使用して、ユーザーごとのCPU使用率を取得するスクリプトを作成できます。以下はそのスクリプトの例です。

!/bin/bash
ps -eo user,%cpu --sort=-%cpu | awk '{if(NR>1)print $1, $2}'

このスクリプトは、CPU使用率でソートされたプロセスのリストを表示します。

4. `sar` コマンドで過去のCPU使用率を確認する

sysstat パッケージに含まれる sar コマンドを使用して、過去のCPU使用率を確認できます。まず、sysstat パッケージをインストールします。

sudo apt-get install sysstat

次に、sar コマンドを使用してデータを取得します。

sar -u 1 3

このコマンドは、1秒ごとに3回のCPU使用率を表示します。

5. `psacct` を使用した詳細なユーザー監視

psacct パッケージを使用すると、ユーザーのプロセス活動を詳細に監視できます。psacct をインストールし、有効にするには以下のコマンドを使用します。

sudo apt-get install psacct
sudo systemctl start psacct
sudo systemctl enable psacct

sa コマンドを使って、ユーザーごとのプロセス統計を表示できます。

sa -u

6. カスタムスクリプトで定期的なレポートを作成する

定期的にユーザーごとのCPU使用率レポートを作成するには、以下のようなカスタムスクリプトを設定します。

!/bin/bash
DATE=$(date '+%Y-%m-%d %H:%M:%S')
REPORT_FILE="/var/log/cpu_usage_report.log"
echo "CPU Usage Report - $DATE" >> $REPORT_FILE
ps -eo user,%cpu --sort=-%cpu | awk '{if(NR>1)print $1, $2}' >> $REPORT_FILE

このスクリプトは、指定したレポートファイルに現在のCPU使用率を記録します。cron ジョブを設定して、定期的にこのスクリプトを実行することができます。