Обсуждение началось здесь: http://forum.oberoncore.ru/viewtopic.php?f=23&t=4214#p77131
Вопрос первый: Есть ли смысл заниматься оптимизацией буферизации I/O на современных жестких дисках в современных осях?
Имеет, но только в крайне специфических случаях (например в случае если ты пишешь собственную высоконагруженную СУБД). Скажем в MySQL в случае движка MyISAM все кеширование отдано на откуп ОСи, в случае innodb - кеширование свое. То есть, видимо, когда твой кеш сможет работать эффективней просто потому, что ты точно знаешь паттерн типичных запросов к диску в твоем приложении (а кэш общего назначения естественно заточен под усредненный вероятностный паттерн).
В современных ОСях по умолчанию ВСЯ не используемая приложениями память (а в случае видны - еще больше) уходит автоматом под дисковый кэш.
Ну и не забываем что у винтов еще свой личноперсональный кэш имеется.
Вопрос второй: Почему в BB буфер имеет фиксированный размер 2 * 1024? Есть ли смысл в другом размере?
Вроде же в исходном топике сказали, что сложилось исторически.
Вопрос третий: Есть ли смысл делать буфер под размер кластера? (если нет системного буфера)
Чтобы избавиться от системного буфера нужно очень специально постараться.
IMHO это все экономия на спичках. Должно сильно повезти (реально повезти) чтобы попалась такая задача, где в обход системного кеша пришлось бы что-то там руками буферизировать.
Впрочем, зачем рассуждать, если можно просто проверить? Поставь эксперимент и не парься. :-)