如何测量命令使用了多少CPU和RAM?

我正在尝试测量我通过命令行调用的进程的内存(即,我想找出该进程需要的大量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 

我对上面提到的命令不满意,我找到了你应该感兴趣的东西。

monit的

 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个secons检查一次

 ## 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 Desktop,或者

使用您的admin:monit凭据登录

在此处输入图像描述

点击Firefox

在此处输入图像描述

有关:

  • 如何安装Monit
  • Monit:检查没有pidfile的进程
  • Monit FAQ
  • 真实世界的Monit配置示例
  • 如何在Linux(Ubuntu)上获取单个进程的CPU使用率和内存使用量?

您还可以使用这些链接获取帮助并修改您的流程。


UPDATE

如果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" 

您还可以制作通知发送脚本

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

在此处输入图像描述

GNU time命令可以打印命令使用的最大驻留集大小。 您必须确保使用/usr/bin/time命令,而不是Bash Shell内置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上可用的哪些度量,其他度量为零