web-dev-qa-db-ja.com

Linuxで特定のプロセスのメモリ消費量を5秒ごとに見つける方法

特定の時間(5秒など)で特定のプロセスのメモリ消費量を見つける方法を知りたいだけです。

私はLinuxが初めてです。したがって、それを行う詳細な手順は高く評価されます

9
Vamsi

sNMPを使用して、ネットワーク内の特定のデバイスのプロセスのメモリおよびCPU使用率を取得できます。

要件:

  • プロセスを実行しているデバイスにsnmpがインストールされ、実行されている必要があります
  • snmpは、以下のスクリプトを実行する場所からの要求を受け入れるように構成する必要があります(snmpd.confで構成できます)。
  • 監視したいプロセスのプロセスID(pid)を知っている必要があります

注:

  • Host-RESOURCES-MIB :: hrSWRunPerfCPUは、このプロセスで消費されるシステムの合計CPUリソースのセンチ秒数です。 。マルチプロセッサシステムでは、この値は1センチ秒の実時間(ウォールクロック)で1センチ秒以上増加する場合があることに注意してください。

  • Host-RESOURCES-MIB :: hrSWRunPerfMemは、このプロセスに割り当てられた実システムメモリの合計量です。

**

プロセス監視スクリプト:

**

echo "IP: "
read ip
echo "specfiy pid: "
read pid
echo "interval in seconds:"
read interval

while [ 1 ]
do
    date
    snmpget -v2c -c public $ip Host-RESOURCES-MIB::hrSWRunPerfCPU.$pid
    snmpget -v2c -c public $ip Host-RESOURCES-MIB::hrSWRunPerfMem.$pid
    sleep $interval;
done

使用する top -p PIDここで、PIDはプロセスIDです。使用されているシステムメモリの割合など、プロセスに関する情報が表示されます。 dと秒単位の整数を入力して、リフレッシュレートを変更します。

27
dward

watch を使用して、スクリプトを定期的に実行します。以下に例を示します。

watch 'cat /proc/status' --interval=5

watch 'ps aux' --interval=5
5
0x90

以前に投稿されたこの質問:

アプリケーションまたはプロセスの実際のメモリ使用量を測定する方法?

それはあなたの質問に完全に対処するようです。

編集:プロセスのリソース使用量をチェックするための私の個人的なお気に入りのLinuxユーティリティはトップですが、リンクした質問で説明されている理由で誤解を招く可能性があります。

3
mdunsmuir