Linux Bash脚本:观察时钟速度时的CPU压力测试
我对这个论坛是全新的,对bash也是全新的,所以请容忍我:) 我想编写一个bash脚本来执行CPU压力测试,同时观察时钟速度。因此,我做了以下工作: 1.)对于CPU压力测试,我创建了一个名为“bernoulli”的脚本,代码如下:Linux Bash脚本:观察时钟速度时的CPU压力测试,linux,bash,parallel-processing,Linux,Bash,Parallel Processing,我对这个论坛是全新的,对bash也是全新的,所以请容忍我:) 我想编写一个bash脚本来执行CPU压力测试,同时观察时钟速度。因此,我做了以下工作: 1.)对于CPU压力测试,我创建了一个名为“bernoulli”的脚本,代码如下: #!/bin/bash # argument 1: n function bernoulli() { if (( $1 < 3 )) then echo 1 else echo $(( $(bern
#!/bin/bash
# argument 1: n
function bernoulli()
{
if (( $1 < 3 ))
then
echo 1
else
echo $(( $(bernoulli $(( $1 - 1 ))) + $(bernoulli $(( $1 - 2 ))) ))
fi
}
bernoulli $1
开始计算第35个伯努利数的任务,30秒后任务被终止
3.)我还通过打字发现
timeout 30s watch grep \"cpu MHz\" /proc/cpuinfo
我可以观察我的内核的时钟速度(每2秒更新一次)30秒(此时“超时30秒”将终止此任务)
我想要什么:我想做上述压力测试,同时观察时钟速度。换句话说,我会以某种方式运行这两个命令
timeout 30s ./bernoulli 35
timeout 30s watch grep \"cpu MHz\" /proc/cpuinfo
“同时”。我希望我能清楚地表明我想要实现的目标。有人能帮我解决这个问题吗?谢谢你的评论 您可以在专用shell中运行它们:
timeout 30s bash -c './bernoulli 35 & watch grep \"cpu MHz\" /proc/cpuinfo'
请注意,单个
&
不是打字错误。它不是逻辑的,并且在后台运行bernoulli
脚本。您可以在专用shell中运行它们:
timeout 30s bash -c './bernoulli 35 & watch grep \"cpu MHz\" /proc/cpuinfo'
请注意,单个&
不是打字错误。它不是逻辑的,它在后台运行bernoulli
脚本。怎么样
timeout 30s ./bernoulli 35 &
timeout 30s watch grep \"cpu MHz\" /proc/cpuinfo
最后的&
将使命令在后台运行,这样第二个超时将在第一个超时后几乎立即执行
PS:这是测试现代CPU相当糟糕的方法。您将只使用单核,而且很可能只使用有限的CPU部分(无sse等)。编写CPU基准并不是件小事,所以您可能希望使用一个已经可用的基准。例如,您可以使用类似于sysbench--test=cpu--cpu max prime=20000 run的方法查看sysbench
,如何
timeout 30s ./bernoulli 35 &
timeout 30s watch grep \"cpu MHz\" /proc/cpuinfo
最后的&
将使命令在后台运行,这样第二个超时将在第一个超时后几乎立即执行
PS:这是测试现代CPU相当糟糕的方法。您将只使用单核,而且很可能只使用有限的CPU部分(无sse等)。编写CPU基准并不是件小事,所以您可能希望使用一个已经可用的基准。例如,您可以使用类似于sysbench--test=cpu--cpu max prime=20000 run
的东西查看sysbench
,非常感谢您提供了非常快速的解决方案,也感谢您提供了额外的提示-我现在就来看看sysbench。哇,非常感谢您提供了非常快速的解决方案,也感谢您提供的额外提示-我现在将查看sysbench。非常感谢您提供了非常快速的响应!很好用!非常感谢您的快速响应!很好用!