私はコマンドラインを介して呼び出すプロセスのメモリを測定しようとしています(つまり、プロセスが使用するCPU/RAMをたくさん見つけたいです)。これを達成するプロセスを呼び出すコマンドに追加できるコマンドはありますか?
top
Firefoxの例。 PIDを見つけます。
ps -aux | grep -i firefox
次に、top -p pid
を使用できます。
top -p 3845
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
資格情報でサインインします
関連する:
これらのリンクをヘルプに使用して、プロセスを変更することもできます。
Firefoxが250 MBを超えるRAMを使用している場合は、アラートを設定することもできます
check process firefox
matching "firefox"
if totalmem > 250.0 MB for 1 cycles then alert
コマンドを実行することもできます
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"
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で利用可能な測定値を表示し、その他はゼロとして表示します