2007-11-11 18:33:46

by Tino Keitel

[permalink] [raw]
Subject: Strage buffer behaviour

Hi folks,

I noticed that the kernel (2.6.23.1) seems to buffer only certain
partitions on my system:

$ for i in 1 2 3 4 ; do for j in 1 2 ; do dd if=/dev/sda$i of=/dev/null
bs=1024k count=100 ; done ; done
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 3.01471 seconds, 34.8 MB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 2.86945 seconds, 36.5 MB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 2.92038 seconds, 35.9 MB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 3.00272 seconds, 34.9 MB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 4.07722 seconds, 25.7 MB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0944248 seconds, 1.1 GB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 5.61527 seconds, 18.7 MB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.331822 seconds, 316 MB/s

The dd command reads 100 MB from each partition two times in a row. It
looks like sda1 and sda2 are not bufferd (the first 4 dd runs), but
sda3 and sda4 are (the last 4 dd runs).

The computer is a Mac mini with a 2,5" SATA hard disk. The first 2
partitions contain EFI and MacOS X, and are unused in Linux. The last 2
partitions are an ext3 partition for / and an LVM for the rest of the
sytem.

Any hints how the dd/buffering behaviour could be explained? The system
was mostly idle, and the numbers are reproducible across reboots.

Regards,
Tino


2007-11-11 19:39:38

by Heikki Orsila

[permalink] [raw]
Subject: Re: Strage buffer behaviour

On Sun, Nov 11, 2007 at 07:33:35PM +0100, Tino Keitel wrote:
> I noticed that the kernel (2.6.23.1) seems to buffer only certain
> partitions on my system:
>
> $ for i in 1 2 3 4 ; do for j in 1 2 ; do dd if=/dev/sda$i of=/dev/null
> bs=1024k count=100 ; done ; done
> 100+0 records in
> 100+0 records out
> 104857600 bytes (105 MB) copied, 3.01471 seconds, 34.8 MB/s
> 100+0 records in
> 100+0 records out
> 104857600 bytes (105 MB) copied, 2.86945 seconds, 36.5 MB/s
> 100+0 records in
> 100+0 records out
> 104857600 bytes (105 MB) copied, 2.92038 seconds, 35.9 MB/s
> 100+0 records in
> 100+0 records out
> 104857600 bytes (105 MB) copied, 3.00272 seconds, 34.9 MB/s
> 100+0 records in
> 100+0 records out
> 104857600 bytes (105 MB) copied, 4.07722 seconds, 25.7 MB/s
> 100+0 records in
> 100+0 records out
> 104857600 bytes (105 MB) copied, 0.0944248 seconds, 1.1 GB/s
> 100+0 records in
> 100+0 records out
> 104857600 bytes (105 MB) copied, 5.61527 seconds, 18.7 MB/s
> 100+0 records in
> 100+0 records out
> 104857600 bytes (105 MB) copied, 0.331822 seconds, 316 MB/s
>
> The dd command reads 100 MB from each partition two times in a row. It
> looks like sda1 and sda2 are not bufferd (the first 4 dd runs), but
> sda3 and sda4 are (the last 4 dd runs).

Strange.. I'm running 2.6.24-rc1 here. Reading data from /dev/hda1
caches well, but not from /dev/sd[ab]1.

PS. you can flush caches with:

echo 1 > /proc/sys/vm/drop_caches

--
Heikki Orsila Barbie's law:
[email protected] "Math is hard, let's go shopping!"
http://www.iki.fi/shd

2007-11-12 19:45:25

by Denys Vlasenko

[permalink] [raw]
Subject: Re: Strage buffer behaviour

On Sunday 11 November 2007 11:33, Tino Keitel wrote:
> The dd command reads 100 MB from each partition two times in a row. It
> looks like sda1 and sda2 are not bufferd (the first 4 dd runs), but
> sda3 and sda4 are (the last 4 dd runs).
>
> The computer is a Mac mini with a 2,5" SATA hard disk. The first 2
> partitions contain EFI and MacOS X, and are unused in Linux. The last 2
> partitions are an ext3 partition for / and an LVM for the rest of the
> sytem.
>
> Any hints how the dd/buffering behaviour could be explained? The system
> was mostly idle, and the numbers are reproducible across reboots.

IIRC only mounted partitions' reads are cached.
--
vda

2007-11-12 20:47:04

by Heikki Orsila

[permalink] [raw]
Subject: Re: Strage buffer behaviour

On Mon, Nov 12, 2007 at 12:44:53PM -0700, Denys Vlasenko wrote:
> IIRC only mounted partitions' reads are cached.

That seems to be the case. Thanks.

--
Heikki Orsila Barbie's law:
[email protected] "Math is hard, let's go shopping!"
http://www.iki.fi/shd

2007-11-14 11:02:47

by Tomasz Chmielewski

[permalink] [raw]
Subject: Re: Strage buffer behaviour

Denys Vlasenko wrote:

> On Sunday 11 November 2007 11:33, Tino Keitel wrote:
>> The dd command reads 100 MB from each partition two times in a row. It
>> looks like sda1 and sda2 are not bufferd (the first 4 dd runs), but
>> sda3 and sda4 are (the last 4 dd runs).
>>
>> The computer is a Mac mini with a 2,5" SATA hard disk. The first 2
>> partitions contain EFI and MacOS X, and are unused in Linux. The last 2
>> partitions are an ext3 partition for / and an LVM for the rest of the
>> sytem.
>>
>> Any hints how the dd/buffering behaviour could be explained? The system
>> was mostly idle, and the numbers are reproducible across reboots.
>
> IIRC only mounted partitions' reads are cached.

Or, in general, those devices which kernel actually "uses" (mounted, but
also LVM, RAID, which don't have to be mounted to get cached).


--
Tomasz Chmielewski
http://lists.wpkg.org