dd if=/dev/zero of=/dev/null bs=2048k count=100000
dd if=/dev/zero of=/dev/null bs=2048k count=100000
dd if=/dev/zero of=/dev/null bs=2048k count=100000
dd if=/dev/zero of=/dev/null bs=2048k count=100000
dd if=/dev/zero of=/dev/null bs=2048k count=100000
dd if=/dev/zero of=/dev/null bs=2048k count=100000
209715200000 bytes (210 GB) copied, 4.2765 seconds, 49.0 GB/s
209715200000 bytes (210 GB) copied, 4.30042 seconds, 48.8 GB/s
209715200000 bytes (210 GB) copied, 4.31607 seconds, 48.6 GB/s
209715200000 bytes (210 GB) copied, 4.29339 seconds, 48.8 GB/s
209715200000 bytes (210 GB) copied, 4.29755 seconds, 48.8 GB/s
209715200000 bytes (210 GB) copied, 4.29938 seconds, 48.8 GB/s
real 0m25.791s
user 0m0.153s
sys 0m25.625s
为什么这些要按顺序执行?
在后台运行它们之后
209715200000 bytes (210 GB) copied, 75.8795 seconds, 2.8 GB/s
209715200000 bytes (210 GB) copied, 75.946 seconds, 2.8 GB/s
209715200000 bytes (210 GB) copied, 76.5718 seconds, 2.7 GB/s
209715200000 bytes (210 GB) copied, 81.5599 seconds, 2.6 GB/s
209715200000 bytes (210 GB) copied, 83.3975 seconds, 2.5 GB/s
209715200000 bytes (210 GB) copied, 83.4965 seconds, 2.5 GB/s
有趣。谢谢你的帮助。
答案1
因为您在前台运行它们 - 需要在每个 dd 行的末尾放置一个 & 以将它们置于后台,例如
dd if=/dev/zero of=/dev/null bs=2048k count=100000 &
dd if=/dev/zero of=/dev/null bs=2048k count=100000 &
dd if=/dev/zero of=/dev/null bs=2048k count=100000 &
dd if=/dev/zero of=/dev/null bs=2048k count=100000 &
dd if=/dev/zero of=/dev/null bs=2048k count=100000 &
dd if=/dev/zero of=/dev/null bs=2048k count=100000 &
亚历克斯
答案2
shell 按照给定的顺序一个接一个地运行命令。如果您在后台启动程序(&
在管道末尾添加)或将其放在后台(例如,^Z
然后bg
),则进程将并行运行。
此外,如果您运行命令管道(即cmd1 | cmd2 | cmd3
),这些命令也会并行运行,只有在等待前一个命令的数据时它们才会停止。