bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Degraded performance in cat + patch


From: Pádraig Brady
Subject: Re: Degraded performance in cat + patch
Date: Fri, 6 Mar 2009 15:01:16 +0000
User-agent: Thunderbird 2.0.0.6 (X11/20071008)

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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]