tech-kern archive

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

Performance riddle: mounted fs much faster than dev



Hi,

while watching the thread about the performance in the newest
kernel, i experience my own performance riddle.

On a VM with 1 GiB reserved host RAM (which it does not exhaust)
and elsewise idle host system, i see poor performance of a virtual
DOS-MBR-partition as device file, while it delivers data with
satisfying speed from a file out of the mounted device.

  netbsd# dd bs=2048 count=131072 if=/dev/wd1f of=/dev/null
  131072+0 records out
  268435456 bytes transferred in 39.934 secs (6721977 bytes/sec)

Larger dd chunks do not really help (i see non-deterministic
speed variations of up 30 %):

  netbsd# dd bs=65536 count=4096 if=/dev/wd1f of=/dev/null
  4096+0 records out
  268435456 bytes transferred in 43.345 secs (6192997 bytes/sec)

But the mounted filesystem is fast (and correct):

  netbsd# mount_cd9660  /dev/wd1f  /mnt/iso
  netbsd# dd bs=2048 count=131072 if=/mnt/iso/my/large_file of=/dev/null
  268435456 bytes transferred in 1.957 secs (137166814 bytes/sec)

(Since yesterday my cd9660 can do this:
  4329375744 bytes transferred in 19.548 secs (221474101 bytes/sec)
:))

Device reading speed is low on 6.1.3 and 6.99.40 alike (can't
mount the filesystem on 6.1.3, though).

The host disk usually delivers 60 to 80 MB per second, if it does
not have to hop through a thick directory tree.
The host operating system (probably) sees the device as a heavily
sparse file. Both read intervals share a large number of blocks.
So the host system probably can deliver them out of RAM after
the first tests. Nevertheless, device reading shows no signs
of speed improvement if i repeat the same test.


What does cd9660 do so much better than dd or any other user space
program which accesses the device file ?


Have a nice day :)

Thomas



Home | Main Index | Thread Index | Old Index