Linuxで特定のサービスのCPUとメモリ使用率を確認する方法

この記事では、Linux環境で特定のサービス(プロセス)のCPUとメモリ使用率を確認する方法を詳しく解説します。具体的なコード例とその解説、応用例を含めています。システム管理者やLinuxユーザーがしばしば直面するこの問題を解決する手法を身につけましょう。

目次

なぜ特定のサービスのリソース使用率を知る必要があるのか

特定のサービスが多くのリソースを消費している場合、それはシステム全体のパフォーマンスに影響を与える可能性があります。高いCPUやメモリ使用率は、サービスが適切に機能していない、または最適化が必要であることを示す兆候であり得ます。

基本的なコマンド

Linuxには様々なシステムモニタリングツールが存在しますが、基本的なコマンドラインツールを用いて状況を確認する方法から始めましょう。

`top`コマンド

`top`コマンドは、システムの状態をリアルタイムで表示するコマンドです。

top  # システムの状態をリアルタイムで確認

こちらを実行すると、CPU使用率、メモリ使用率、実行中のプロセスなどが表示されます。

`ps`コマンド

`ps`コマンドは、現在実行中のプロセスの一覧を表示します。

ps aux  # すべてのプロセスの一覧を表示

特定のサービスのCPUとメモリ使用率を確認する方法

`pgrep`と`ps`を組み合わせる

pgrep -f [サービス名] | xargs ps u -p  # 特定のサービスのCPUとメモリ使用率を確認

こちらのコマンドは`pgrep`で特定のサービス名でプロセスIDを取得し、そのIDを`ps`コマンドで詳細に表示します。

応用例

1. 特定のサービスのCPU使用率を監視し、閾値を超えたら警告メールを送る

#!/bin/bash
threshold=70  # CPU使用率の閾値
process_name="example-service"

cpu_usage=$(pgrep -f $process_name | xargs ps u -p | awk 'NR>1 {print $3}')

if (( $(echo "$cpu_usage > $threshold" | bc -l) )); then
  echo "CPU Usage of $process_name is high: $cpu_usage%" | mail -s "High CPU Usage Alert" admin@example.com
fi

2. 特定の時間にサービスのリソース使用率をログに出力する

#!/bin/bash
log_file="/var/log/resource_usage.log"
process_name="example-service"

echo "------ $(date) ------" >> $log_file
pgrep -f $process_name | xargs ps u -p >> $log_file

3. 特定のサービスが一定以上のメモリを使用していたら再起動する

#!/bin/bash
threshold=800  # メモリ使用量の閾値 (MB)
process_name="example-service"

memory_usage=$(pgrep -f $process_name | xargs ps u -p | awk 'NR>1 {print $6/1024}')

if (( $(echo "$memory_usage > $threshold" | bc -l) )); then
  systemctl restart $process_name
fi

4. `cron`を使用して定期的にリソース監視スクリプトを実行する

`cron`を使用して、上述のスクリプトを定期的に実行できます。

* * * * * /path/to/your-script.sh  # 1分ごとにスクリプトを実行

5. GrafanaとPrometheusを使った監視

より高度な監視を行いたい場合は、GrafanaとPrometheusを使用してダッシュボードを作成することも可能です。

まとめ

Linuxで特定のサービスのCPUとメモリ使用率を確認する方法は多数ありますが、基本的なコマンドラインツールであれば`top`や`ps`、`pgrep`を使って簡

単に確認することが可能です。さらに、応用例を通して自動的にリソースを監視する方法も紹介しました。これらの手法を使って、システムの健全性を保ちましょう。

created by Rinker
オライリージャパン
¥3,080 (2024/09/16 12:49:29時点 Amazon調べ-詳細)

コメント

コメントする

目次