Re: [EXT] Re: how to disable readahead

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

 



On Thu, Aug 02, 2018 at 01:56:41PM +0000, Bean Huo (beanhuo) wrote:
> 
> I am newbie on ext4, I tried the above method to disable readahead,
> echo 0 > /sys/block/<dev>/queue/read_ahead_kb Then I read by 128kB
> chunk size, ext4 will read the file by 4KB chunk size each
> time. that means ext4 splits 128KB into 32 4KB to read.  That's not
> my expectation.  Do you know how to still keep and let ext4 read by
> 128KB in case of disable readahead?

Hmm... that's not my expectation as well, but I've replicated your
results.  More interestingly, I tried the same experiment using XFS,
and it does the same thing.  I used as my test workload:

dd if=/mnt/test bs=128k count=32 | sum

Used strace to verify that dd was in fact issuing 128k reads:

read(0, "\377\253a)\307\10\230\6\360,,:\226Rq\204\343\2522&44\307\341\372\271\271/\224#?\346"..., 131072) = 131072
write(1, "\377\253a)\307\10\230\6\360,,:\226Rq\204\343\2522&44\307\341\372\271\271/\224#?\346"..., 131072) = 131072

And then used btrace to monitor the I/O requests sent to the device:

252,4    0      413     0.077274997 14645  Q   R 4408 + 8 [dd]
252,4    2       77     0.077355648  5529  C   R 4408 + 8 [0]
252,4    0      414     0.077393725 14645  Q   R 4416 + 8 [dd]
252,4    2       78     0.077630722  5529  C   R 4416 + 8 [0]
	...

... and indeed, the reads are being sent to the device in 4k chunks.
That's indeed surprising.  I'd have to do some debugging with
tracepoints to see what requests are being issued from the
mm/filemap.c to the file system.

As others have suggested using O_DIRECT reads will certainly allow the
128k reads to be passed all the way down to the device:

% dd if=/mnt/test  bs=128k count=32 iflag=direct | sum

results in the btrace output:

252,4    2      373  2339.068546832 21436  Q   R 416 + 256 [dd]
252,4    2      374  2339.070683655 21436  Q   R 672 + 256 [dd]
252,4    2      375  2339.072539850 21436  Q   R 928 + 256 [dd]
252,4    2      376  2339.074531103 21436  Q   R 1184 + 256 [dd]
	...

						- Ted



[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux