What io scheduler are you using? The anticipatory scheduler is meant to prevent this slowdown with multiple concurrent reads.
-- And the lexer will say "Oh look, there's a null string. Oooh, there's another. And another.", and will fall over spectacularly when it realises there are actually rather a lot. - Computer Science Lecturer (edited)