我想多次运行此命令,但我不知道该怎么做。 它必须是一个单一的命令。这个命令的作用是推送我的cpu核心 %100
dd if=/dev/zero of=/dev/null
它用于作业。如果可以的话请帮忙 谢谢
这就是作业中的内容。也许找出来可能会有所帮助
"弄清楚如何运行命令dd的多个实例 if = / dev / zero of = / dev / null同时。你也可以使用 命令sum / dev / zero。您应该为每个CPU核心运行一个实例,以便 在您的所有CPU核心上将CPU利用率提高到100% 虚拟机。您应该能够启动所有实例 以普通用户身份运行单个命令或管道"
到目前为止我试过
dd if=/dev/zero of=/dev/null | xargs -p2
但这并没有做好工作
答案 0 :(得分:0)
许多方式......例如重复命令四次:
命令& ;命令与;命令与;命令&
..或以更系统的方式:
dat[A2, on=.(name), approx(variable, v, value)$y, by=.EACHI]
name V1
1: A 0.61
2: B 1.41
3: C 2.33
答案 1 :(得分:0)
您的作业可能已经到期。但是对于未来的读者来说,这是一个单线解决方案。
perl -e 'print "/dev/zero\n" x'$(nproc --all) | xargs -n 1 -P $(nproc --all) -I{} dd if={} of=/dev/null
这是如何工作的?让我们剖析管道。
nproc --all
将返回系统中的核心数。让我们假装你的系统有4个核心。
perl -e 'print "/dev/zero\n" x 4'
将打印4行/dev/zero
。
输出
/dev/zero
/dev/zero
/dev/zero
/dev/zero
然后将perl的输出传递给xargs
。
-n 1
告诉xargs
一次只使用一个参数。
-I {}
告诉xargs
该参数将替换{}
-P 4
告诉xargs
并行运行多达4个命令实例
上述命令的较短版本可以这样写:
perl -e 'print "if=/dev/zero of=/dev/null\n" x '$(nproc --all) | xargs -n2 -P0 dd
答案 2 :(得分:0)
这将运行4份副本:
dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null
但实际上不建议将其作为家庭作业的解决方案,因为它看起来好像你不明白什么确实。这里没有通过管道发送任何东西。它的优点是可以使用Ctrl-C轻松停止。
如果目标仅仅是增加碳排放,那么这就更短了:
burnP6 | burnP6 | burnP6 | burnP6
如果你有GNU Parallel:
yes /dev/zero | parallel dd if={} of=/dev/null
yes | parallel burnP6
GNU Parallel默认启动每个CPU核心1个作业,因此它只从yes
读取那么多参数。
答案 3 :(得分:0)
或者您可以尝试使用我自己的并行数据传输工具pdd。该工具产生多个线程,每个线程都绑定到CPU内核。