我正在尝试使用 64 位CentOS 6 将超高速数据从一个应用程序传输到另一个应用程序。我已经完成了以下基准测试dd
,发现管道阻碍了我,而不是我的程序中的算法。我的目标是达到 1.5 GB/s 左右。
首先,没有管道:
dd if=/dev/zero of=/dev/null bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes (8.4 GB) copied, 0.41925 s, 20.0 GB/s
接下来,两个 dd 进程之间的管道:
dd if=/dev/zero bs=8M count=1000 | dd of=/dev/null bs=8M
1000+0 records in
1000+0 records out
8388608000 bytes (8.4 GB) copied, 9.39205 s, 893 MB/s
我可以对内核或其他任何可以提高通过管道运行数据的性能的调整吗?我也尝试过命名管道,并得到了类似的结果。