Не могли бы вы помочь мне понять "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.