如何运行此命令的多个实例dd

时间:2017-01-26 19:49:47

标签: linux unix command

我想多次运行此命令,但我不知道该怎么做。 它必须是一个单一的命令。这个命令的作用是推送我的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

但这并没有做好工作

4 个答案:

答案 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内核。