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

Dim*_*vva 7 command-line cpu-load ram

我正在尝试测量我通过命令行调用的进程的内存(即,我想找出进程占用的 CPU/RAM 量)。是否有任何命令可以添加到调用将实现此目的的进程的命令中?

Qas*_*sim 9

top

火狐的例子。找到PID:

ps -aux | grep -i firefox
Run Code Online (Sandbox Code Playgroud)

然后你可以使用top -p pid

top -p  3845
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


ps

也可以用ps命令,firefox pid是3845

$ ps -p 3845 -o %cpu,%mem,cmd
%CPU  %MEM CMD
11.1  3.7 /usr/lib/firefox/firefox
Run Code Online (Sandbox Code Playgroud)

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

监控

sudo apt-get install monit -y
Run Code Online (Sandbox Code Playgroud)

编辑监控配置文件

sudo nano /etc/monit/monitrc
Run Code Online (Sandbox Code Playgroud)

启用网络界面

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'
Run Code Online (Sandbox Code Playgroud)

每 2 秒检查一次过程

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

示例 Firefox

最后复制粘贴以下命令

check process firefox
matching "firefox"
Run Code Online (Sandbox Code Playgroud)

保存并退出

检查你的语法

修复发现的任何问题——弄清楚发生了什么并不难。

sudo monit -t
Run Code Online (Sandbox Code Playgroud)

启动(或重新启动)Monit

sudo service monit start
Run Code Online (Sandbox Code Playgroud)

访问网页界面

http://localhost:2812 如果您正在运行 Ubuntu 桌面,或者

使用您的admin:monit凭据登录

在此处输入图片说明

点击火狐

在此处输入图片说明

有关的:

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


更新

如果 firefox 使用超过 250 MB 的内存,您还可以配置警报

check process firefox
matching "firefox"
if totalmem > 250.0 MB for 1 cycles then alert
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明

也可以执行命令

if totalmem > 250.0 MB for 1 cycles then exec "path to script"
Run Code Online (Sandbox Code Playgroud)

也可以制作Notify-Send的脚本

/usr/bin/notify-send firefox "More Than 250 MB OF RAM"
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明