LINUX.ORG.RU

История изменений

Исправление no-dashi-v2, (текущая версия) :

В идеале задачи должны быть по продолжительности на единицы мс (скажем 20МБ)

Посмотри на диск в /sys/block/sd***. Увидишь там всякие max_XYZ - вот оно и будет по сути верхним порогом выше которого нет смысла агрегировать - все равно оно поделит на такие куски.

А вообще, мы у себя по результатпм тестов в свое время пришли к выводу, что нет смысла агрегировать более чем до 512КБ. Да, иопсов получается меньше, но время каждой операции вырастает.

Если уж хочется оптимизаций для борьбы с фрагментацией - есть fallocate который позволяет разом зарезервировать сколько надо места и потом в него писать, для не-CoW файловых систем (читай для всех кроме log-based извращений, ZFS и BTRFS) - то есть для этих вот всяких ext3/4 и xfs, fallocate практически полностью решает проблему фрагментации. Добавил 16MB и пишешь, добрался до конца - еще раз рашсирил и так далее. А в конце транкейтнул до фактического размера данных и готово.

Исходная версия no-dashi-v2, :

В идеале задачи должны быть по продолжительности на единицы мс (скажем 20МБ)

Посмотри на диск в /sys/block/sd***. Увидишь там всякие max_XYZ - вот оно и будет по сути верхним порогом выше которого нет смысла агрегировать - все равно оно поделит на такие куски.

А вообще, по мы у себя по результатпм тестов в свое время пришли к выводу, что нет смысла агрегировать более чем до 512КБ. Да, иопсов получается меньше, но время каждой операции вырастает.

Если уж хочется оптимизаций для борьбы с фрагментацией - есть fallocate который позволяет разом зарезервировать сколько надо места и потом в него писать, для не-CoW файловых систем (читай для всех кроме log-based извращений, ZFS и BTRFS) - то есть для этих вот всяких ext3/4 и xfs, fallocate практически полностью решает проблему фрагментации. Добавил 16MB и пишешь, добрался до конца - еще раз рашсирил и так далее. А в конце транкейтнул до фактического размера данных и готово.