Настройка дисковой подсистемы для NFS
Одной из наиболее распространенных причин появления узких мест, проявляющихся при интенсивном чтении и записи данных, является неправильная настройка дисковых подсистем.
Если вы планируете настройку только дисковой подсистемы сервера NFS, то учтите, что в некоторых случаях неполадка может быть связана с неправильной настройкой дисковой подсистемы клиента NFS. Примером такой ситуации может служить копирование файла приложением клиента NFS из файловой системы NFS в локальную файловую систему клиента. В этом случае дисковая подсистема клиента должна быть настроена таким образом, чтобы производительность не была ограничена скоростью записи в локальную файловую систему. См. инструкции по настройке, описанные в разделе Производительность логических томов и дискового ввода-вывода. В частности, обратите внимание на следующие особенности:
- Для простых операций чтения и записи NFS оцените производительность дисков, на которых размещаются применяемые файловые системы. Для этого выполните локальное чтение данных из файла или запись в файл. Для измерения пропускной способности дисков следует применять команду iostat, так как тестовые приложения как правило не записывают на диск все данные. Например, данные могут остаться в памяти. Результаты локальных измерений представляют собой максимальную возможную производительность NFS, так как в этом случае не выполняется дополнительная обработка и отсутствуют задержки, связанные с выполнением дополнительных операций в NFS.
- Часто требуется обеспечить параллелизм доступа к данным. Одновременный доступ к одной файловой системе нескольких клиентов или нескольких процессов одного клиента может привести к перегрузке дискового устройства сервера. Определить степень загруженности дисков можно с помощью команды iostat. В частности, параметр %tm_act указывает на время активности конкретного диска в процентах, однако высокое значение может означать перегрузку адаптера, связанного с этим диском.
- Следует отметить, хотя это и не связано напрямую с настройкой дисковых подсистем, что параллельная запись в один файл может привести к конфликту блокировки inode этого файла. Большинство файловых систем применяют блокировку inode для обеспечения последовательного доступа к файлу и согласования записываемых в него данных. К сожалению, это может привести к значительному снижению скорости записи, если одновременно несколько нитей пытаются записать данные в один и тот же файл, так как запись разрешена только одной нити, обладающей блокировкой inode.
- Общая стратегия для больших серверов NFS состоит в распределении нагрузки дискового ввода-вывода по максимально возможному числу дисков и контроллеров. В системе с оптимальным распределением нагрузки дискового ввода-вывода производительность в отдельные моменты времени может быть ограничена лишь быстродействием процессоров.