> > Maybe the important question is why would be readahead mechanism be > disabled in the first place via /sys | blockdev ? > > Because database should know better than OS which data needs to be > prefetched and which should not. Big OS readahead affects index scan > performance.
OK fair point, however the patch here is adding 1 syscall per XLOG_BLCKSZ which is not cheap either. The code is already hot and there is example from the past where syscalls were limiting the performance [1]. Maybe it could be prefetching in larger batches (128kB? 1MB? 16MB?) ? -J. [1] - https://commitfest.postgresql.org/28/2606/