Странные дела творяться...
Написал небольшую программулину, которая открывает файл с O_DIRECT и пишет туда, скажем, 10 Gb. Просто буфер максимального размера выравниваю по странице и в цикле делаю write.
Работает, кэш не засоряет, проверено.
Сравниваем с ней же, но без O_DIRECT, а время меряется time'ом с sync'ом, типа
time sh -c "./iotest ; sync"
Результат -- раза в 2 быстрее.
Пробовал монтировать директорию с опцией sync -- то же самое.
Пробовал даже вместо sync делать umount -- то же самое.
Кто может объяснить?
Да, RAM'а у меня 65 Gb