获得单个进程的平均CPU使用率,直到在bash脚本中将其杀死为止

问题描述 投票:0回答:1

我有一个bash脚本,在这里我想知道一个进程使用多少CPU时间,直到我在脚本的最后一行杀死它为止。我知道我通常可以通过time -v命令来执行此操作,但是我的进程是基于Erlang / OTP的,并且通过使用time命令它只能测量启动进程的统计信息。因此,我想使用我可以轻松获得的进程PID,并使用该进程PID来获取CPU时间百分比,直到脚本结束为止。目前,我正在使用pidstat,但它只为我提供线性时间间隔的统计信息。我想测量从进程开始到被杀死的确切时间间隔。峰值RAM统计信息也很好。您能推荐我在这种情况下可以使用的任何命令吗?

这是我的bash脚本:

sudo emqx start
sleep 10 
mypid=$(sudo emqx pid)
echo $mypid
sudo pidstat -h -r -u -v -p "$mypid" 5 > $local/server_results/test1/emqxstats_$b.txt &

# process for load testing
# jthreads = amount of publishing users
sleep 5
until sudo ~/Downloads/apache-jmeter-5.2.1/bin/jmeter -n -t $local/testplans/csv.jmx -Jport=$a | grep -m 1 "... end of run"; do : ; done 
sudo emqx stop
kill %!

因此,我想从启动mosquitto到Apache Jmeter测试到达最后两行为止的时间间隔测量CPU百分比。亲切的问候

linux bash ubuntu cpu pid
1个回答
0
投票

我找到了我正在研究的命令。

ps -o pcpu -p $pid 

这正是我需要的命令,因为它计算了整个过程的生命周期百分比。

© www.soinside.com 2019 - 2024. All rights reserved.