Messages in this thread | | | Date | Tue, 29 Jun 2004 16:46:22 -0600 | From | Andreas Dilger <> | Subject | Re: Block Device Caching |
| |
On Jun 30, 2004 00:20 +0200, Markus Schaber wrote: > During our application testing, we noticed that our application (that > operates directly on a LVM volume) we noticed that it seems the read > data does not go into any cache. > > Now we did some tests using dd blocksize=1M count=1000: > > Using dd directly on the /dev/daten/testing lvm volume, we read about 95 > MBytes/Seconds. Issuing multiple dds in sequence gives little variance in IO > speed (between 90 and 100 MB/sec). > > When we create a file system on this volume, and mount it, and we create > a 1G file there, the dd gives us the same 95 MB/sec on the first read > after the mount, and approx. 480 MB/Sec on subsequent reads. > > This lead us to the conclusion that block devices do not cache, but the > filesystem does. But subsequently, I ran some tests on my developer > machine (Pentium 4 Mobile Laptop). > > When dd'ing 100MB from /dev/hda5, the first read gives about > 22MBytes/Sek (which seems okay for a 2.5" IDE Disk), but subsequend > reads give about 389MBytes/sek (which is impossible to achieve using > such hardware). Interestingly, this happens on a mounted partition, > while when unmounting the partition, caching does not work. But for the > /dev/daten/testing above, mounting a filesystem on the partition does > not help in caching.
When you close the block device it flushes the cache for that device (inode). If you kept the device open in some way (e.g. "sleep 10000000 < /dev/hda5") then it should start caching the data between dd runs.
Cheers, Andreas -- Andreas Dilger http://sourceforge.net/projects/ext2resize/ http://members.shaw.ca/adilger/ http://members.shaw.ca/golinux/
[unhandled content-type:application/pgp-signature] | |