gpt4 book ai didi

linux - Bash 脚本 : CPU stress test while watching clock speed

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:40 30 4
gpt4 key购买 nike

我是这个论坛的新手,也是 bash 的新手,所以请多多包涵 :)。

我想写一个 bash 脚本来进行 CPU 压力测试,同时观察时钟速度。因此,我做了以下工作:

1.) 对于 CPU 压力测试,我使用以下代码创建了一个名为“bernoulli”的脚本:

#!/bin/bash
# argument 1: n

function bernoulli()
{
if (( $1 < 3 ))
then
echo 1
else
echo $(( $(bernoulli $(( $1 - 1 ))) + $(bernoulli $(( $1 - 2 ))) ))
fi
}
bernoulli $1

2.) 我发现通过使用“timeout”命令我可以在指定时间后终止任务。例如,

timeout 30s ./bernoulli 35

开始计算第 35 个伯努利数的任务,并在 30 秒后终止任务。

3.) 我还通过输入发现了这一点

timeout 30s watch grep \"cpu MHz\" /proc/cpuinfo

我可以观察我的内核的时钟速度(每 2 秒更新一次)30 秒(此时“超时 30 秒”会终止此任务)。

What I want: 我想做上面的压力测试,同时观察时钟速度。换句话说,我会以某种方式运行这两个命令

timeout 30s ./bernoulli 35
timeout 30s watch grep \"cpu MHz\" /proc/cpuinfo

“同时”。我希望我能说清楚我想要达到的目标。任何人都可以帮助解决我的问题吗?非常感谢您的每一条评论!

最佳答案

怎么样

timeout 30s ./bernoulli 35 &
timeout 30s watch grep \"cpu MHz\" /proc/cpuinfo

& 最后将使命令在后台运行,因此第二个 timeout 将在第一个之后几乎立即执行。

PS:这是一种相当糟糕的现代 CPU 测试方法。您将只使用单核,而且很可能只使用有限的 CPU 部分(没有 sse 等)。编写 CPU 基准测试并非易事,因此您可能想要使用其中一个已经可用的基准测试。例如,您可以使用类似 sysbench --test=cpu --cpu-max-prime=20000 run 的内容查看 sysbench

关于linux - Bash 脚本 : CPU stress test while watching clock speed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755347/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com