Назад | Перейти на главную страницу

Режим прямого ввода-вывода GlusterFS

Не могли бы вы помочь мне понять "direct-io-mode" в GlusterFS.

Я получаю лучшие результаты чтения с отключенным режимом прямого ввода-вывода - это означает, что в отключенном режиме он пишет / читает из кеша - это системный кеш или кеш GlusterFS? Какой рекомендуемый метод? Я использую 4 узла с распределенно-реплицированным объемом для веб-обслуживания:

Write: dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
echo 3 > /proc/sys/vm/drop_caches
Read: dd if=tempfile of=/dev/null bs=1M count=1024
Read-Read: dd if=tempfile of=/dev/null bs=1M count=1024

Write           Read            Re-Read
67.5 MB/s       94.9 MB/s       94.6 MB/s   direct-io-mode=enabled
65.8 MB/s       230 MB/s        226 MB/s    direct-io-mode=disabled

после долгих поисков я нашел этот статья. это не специфично для glusterfs, но может помочь лучше понять: короче говоря, режим прямого ввода-вывода отключает файловый буфер, реализованный операционной системой для этой точки монтирования.

прочитав его, я пришел к такому выводу:

Включение или отключение может дать вам лучшую скорость передачи в зависимости от того, какое приложение использует ваш том glusterfs: если вы используете приложения или базы данных, которые обрабатывают кеши сами по себе, у вас будет некоторое ускорение включения его (из-за отсутствия накладных расходов второго буфера ). если вы просто выполняете доступ к файлам, возможно, отключение этого увеличит вашу производительность из-за меньшего доступа к сети из-за локального файлового кеша.

Вы включаете direct-io-mode командой "mount -t glusterfs XXX: / testvol -o direct-io-mode = enable mountpoint" ?? Если это так, файл не был кэширован в клиентском ядре GlusterFS, другими словами, кеш системный кеш, но файл был кэширован в ядре сервера GlusterFS.