3.1 Дисковая подсистема ввода-вывода

Дисковая подсистема ввода-вывода — самое общее «узкое» место. Операции ввода-вывода выполняются в течении относительно длительного времени и образуют более длинные очереди, что приводит к высокому коэффициенту использования диска и неиспользуемым циклам центрального процессора. Чтобы определить показатели среднего времени ответа, воспользуйтесь инструментом iostat во время ожидаемой пиковой нагрузки.

Операции записи на диск, чтения с диска и обновления могут быть последовательными или случайными. Случайные операции чтения и обновления — самые общие операции доступа в развертываниях eDirectory.

Ниже перечислены некоторые решения для обработки случайных рабочих нагрузок.

  • Увеличьте объем ОЗУ. Это позволит кэшировать часто используемые данные или выполнить упреждающее считывание данных на уровне файловой системы. Кроме того, это позволит кэшировать DIB в подсистеме FLAIM.

  • Воспользуйтесь выделенными томами для DIB. Для томов, созданных ближе к шпинделю, производительность файловой системы выше. Используйте выделенные тома для RFL и других журналов.

  • Со временем по мере повышения латентности дисков из-за фрагментации их следует дефрагментировать.

  • Добавьте отдельные диски для журнала RFL FLAIM. Протоколирование этого типа можно выполнять на высокоскоростных дисках.

  • Воспользуйтесь средой RAID 10(1+0) с большим количеством дисков.

Размер файлов, созданных eDirectory, может вырасти до 4 ГБ. Файловые системы, оптимизированные для работы с большими файлами, работают эффективно с eDirectory.

  • В Solaris™ файловая система Veritas* VxFS основана на экстентах. В ней метаданные файловой системы оптимизированы для больших файлов. Файловая система UFS косвенно основана на блоках. В ней метаданные файловой системы хранятся в большом количестве блоков. Она даже может быть распределена для больших файлов, что приводит к замедлению работы UFS при выполнении операций с ними.

  • В Linux™ файловая система Reiser — это быстрая журнализированная файловая система (JFS), которая обеспечивает более высокую производительность по сравнению с ext3 в больших наборах DIB. Однако производительность режима журналирования ext3 с обратной записью соответствует производительности файловой системы Reiser, хотя режим упорядоченного журналирования данных по умолчанию обеспечивает их лучшую согласованность. XFS — это высокопроизводительная журнализированная файловая система (JFS), которая позволяет обрабатывать большие файлы и обеспечивает плавную передачу данных. eDirectory 9.0 поддерживается на 32- и 64-разрядных платформах SLES 11, которые имеют файловую систему XFS.

FLAIM поддерживает блоки размером 4 КБ и 8 КБ. По умолчанию задан размер 4 КБ. Такой же размер по умолчанию задан для блоков в Linux (tune2fs -l device). Однако в Solaris файловая система UFS создана с блоками размером 8 КБ по умолчанию (df -g mountpoint). Если размер блока FLAIM меньше размера блока файловой системы, могут происходить частичные записи блока. Если размер блока базы данных больше, чем размер блока файловой системы, отдельные операции чтения и записи блока разделяются на последовательности отдельных физических операций ввода-вывода. Поэтому всегда нужно поддерживать размер блока FLAIM таким же, как и размер блока файловой системы.

Размерами блока можно управлять только при создании DIB. Чтобы создать DIB с размером 8 КБ, добавьте строку "blocksize=8192" в файл _ndsdb.ini.

Выбор правильного размера блока зависит от среднего размера записи FLAIM в ваших развертываниях. Чтобы определить размер блока, который лучшего всего подойдет для вашего развертывания, необходимо провести эмпирическое тестирование правильного набора тестовых данных.