On Wed, Jan 31, 2018 at 1:57 PM, Vitaliy Garnashevich <vgarnashevich@xxxxxxxxx> wrote: > More tests: > > io1, 100 GB: > > effective_io_concurrency=0 > Execution time: 40333.626 ms > effective_io_concurrency=1 > Execution time: 163840.500 ms In my experience playing with prefetch, e_i_c>0 interferes with kernel read-ahead. What you've got there would make sense if what postgres thinks will be random I/O ends up being sequential. With e_i_c=0, the kernel will optimize the hell out of it, because it's a predictable pattern. But with e_i_c=1, the kernel's optimization gets disabled but postgres isn't reading much ahead, so you get the worst possible case.