web-dev-qa-db-ja.com

コマンドで使用されたCPUとRAMの量を測定するにはどうすればよいですか?

私はコマンドラインを介して呼び出すプロセスのメモリを測定しようとしています(つまり、プロセスが使用するCPU/RAMをたくさん見つけたいです)。これを達成するプロセスを呼び出すコマンドに追加できるコマンドはありますか?

5
Dima Savva

top

Firefoxの例。 PIDを見つけます。

ps -aux | grep -i firefox

次に、top -p pidを使用できます。

top -p  3845

enter image description here


ps

psコマンドを使用することもできますfirefox pidは3845

$ ps -p 3845 -o %cpu,%mem,cmd
%CPU  %MEM CMD
11.1  3.7 /usr/lib/firefox/firefox

私は上記のコマンドに満足していません。あなたが興味を持つべきものを見つけました。

モニット

Sudo apt-get install monit -y

Monit構成ファイルを編集する

Sudo nano /etc/monit/monitrc

Webインターフェイスを有効にする

set httpd port 2812
# use address localhost # only accept connection from localhost
allow localhost # allow localhost to connect to the server and
# allow 192.168.1.0/255.255.255.0 # allow any Host on 192.168.1.* subnet
allow admin:monit # require user 'admin' with password 'monit'

2秒ごとにプロセスを確認する

## Start Monit in the background (run as a daemon):
set daemon 120 to only 2  # check process every 2 sec

Firefoxの例

最後のコピーで、次のコマンドを貼り付けます

check process firefox
matching "firefox"

保存して終了

構文を確認してください

見つかった問題を修正します。何が起こっているのかを把握するのはそれほど難しくありません。

Sudo monit -t

開始(または再起動)Monit

Sudo service monit start

Webインターフェースにアクセスします

http://localhost:2812 Ubuntuデスクトップを実行している場合、または

admin:monit資格情報でサインインします

enter image description here

Firefoxをクリックします

enter image description here

関連する:

これらのリンクをヘルプに使用して、プロセスを変更することもできます。


更新

Firefoxが250 MBを超えるRAMを使用している場合は、アラートを設定することもできます

check process firefox
matching "firefox"
if totalmem > 250.0 MB for 1 cycles then alert

enter image description here

enter image description here

コマンドを実行することもできます

if totalmem > 250.0 MB for 1 cycles then exec "path to script"

Notify-Sendのスクリプトを作成することもできます

/usr/bin/notify-send firefox "More Than 250 MB OF RAM"

enter image description here

9
Qasim

GNU timeコマンドは、コマンドで使用される最大常駐セットサイズを出力できます。 Bashシェルのビルトインtimeキーワードではなく、/usr/bin/timeコマンドを必ず使用する必要があります。

firefoxコマンドを測定する例:

/usr/bin/time --format="Size:%MK  Cpu:%P  Elapsed:%e" firefox &

しばらくFirefoxを使用した後、レポートを取得するために閉じます。

Size:168644K  Cpu:30%  Elapsed:226.34

TIME環境変数を使用してデフォルトの形式を設定することは可能ですが、特定の形式で個別のbashエイリアスを設定する方がより柔軟であることがわかりました。したがって、上記の場合は~/.bash_aliasesファイルに追加します。

alias ztm="/usr/bin/time --format=\"Size:%MK  Cpu:%P  Elapsed:%e\""

Bash Shellから次のように入力できます。

ztm firefox &

参照:

  • man time
  • info time
  • man 2 getrusage #-Linuxで利用可能な測定値を表示し、その他はゼロとして表示します
2
LantzR