Jim Meyering wrote: > Pádraig Brady wrote: > ... >> Why such a huge syscall overhead? Testing with dd on a >> 1.7GHz pentium-m with 2.6.24.5-85.fc8 shows much less: > > Probably due to my faster memory, caches, etc. > The systems I tested on have 800MHz and 667MHz DDRII. > I suspect that the relative syscall overhead is more > apparent with the faster memory. > > I have added my numbers from the AMD system running rawhide: > >> $ truncate -s2G test.cat >> >> $ dd bs=4x1024 if=test.cat of=/dev/null >> 2147483648 bytes (2.1 GB) copied, 6.57765 s, 326 MB/s > > 2147483648 bytes (2.1 GB) copied, 2.0886 s, 1.0 GB/s > >> $ dd bs=32x1024 if=test.cat of=/dev/null >> 2147483648 bytes (2.1 GB) copied, 5.74548 s, 374 MB/s > > 2147483648 bytes (2.1 GB) copied, 1.06558 s, 2.0 GB/s
Wow that's interesting. My results are with 400MHz DDR2. If I do a simpler test excluding file-system and page cache to just show the syscall overhead I can also see the doubling of throughput when going from 4KiB to 32KiB buffers: for i in $(seq 0 10); do bs=$((1024*2**$i)) printf "%7s=" $bs dd bs=$bs if=/dev/zero of=/dev/null count=$(((2*1024**3)/$bs)) 2>&1 | sed -n 's/.* \([0-9.]* [GM]B\/s\)/\1/p' done 1024=484 MB/s 2048=857 MB/s 4096=1.6 GB/s 8192=2.4 GB/s 16384=3.1 GB/s 32768=3.6 GB/s 65536=3.6 GB/s 131072=3.8 GB/s 262144=3.9 GB/s 524288=3.9 GB/s 1048576=3.9 GB/s Why I only see a small increase between 4 & 32K buffers when going through the file-system and page cache on my kernel, must be due to inefficiencies that have subsequently been addressed? cheers, Pádraig. _______________________________________________ Bug-coreutils mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-coreutils
