BASH Programming - Введение


4.2 Оптимизация NFS


Обычно, если не заданы опции rsize и wsize, то NFS будет читать и писать блоками по 4096 или по 8192 байтов. Некоторые комбинации ядер Linux и сетевых карт не могут обрабатывать такие большие блоки, и это может быть не оптимально. Так что нам нужно поэкспериментировать и найти значения rsize и wsize, которые работают так быстр,о насколько это возможно. Вы можете протестировать скорость передачи при заданных опциях при помощи нескольких простых команд. Выполнив вышеприведенную команду монтирования и получив доступ с правом записи на диск, вы можете выполнить тестирование производительности последовательной записи:

time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096

Эта команда создает 64Mb файл, заполненный нулевыми значениями (этот файл должен быть достаточно большим, настолько большим, чтобы кэширование не сыграло значительную роль в производительности, используйте больший размер файла, если у вас достаточно много памяти). Проделайте эту операцию несколько раз (5-10?) и усредните полученные результаты. Полученная величина-- это время `прохода', т.е. величина наиболее интересующая нас в этом эксперименте. Затем вы можете измерить производительность чтения, прочитав файл обратно на свою машину:

time dd if=/mnt/testfile of=/dev/null bs=16k

выполните эту операцию несколько раз и усредните результат. Затем отмонтируйте файловую систему и примонтируйте ее заново, с увеличенными значениями rsize и wsize. Вероятно они должны быть кратными 1024, и не больше чем 16384 байтов, поскольку это максимальный размер блока данных в NFS версии 2. Прямо после монтирования с увеличенными значениями перейдите в смонтированную файловую систему и выполните команду подобную ls, исследуйте файловую систему, чтобы убедиться, что все в норме. Если значения rsize/wsize слишком большие, то симптомы очень необычные и не на 100% очевидные. Типичный симптом выражается в неполном списке файлов при выполнении команды 'ls', и отсутствие сообщений об ошибках. Или чтение файлов загадочно срывается без сообщения об ошибке. После того, как вы установите, что заданные значения rsize/wsize работают, вы можете далее продолжать тестировать производительность. Различные серверные платформы вероятно имеют различные оптимальные размеры блоков. SunOS и Solaris по общему мнению, работают довольно быстрее при размере блока равном 4096 байт, чем при других значениях.




Начало  Назад  Вперед