Spec-Zone .ru
спецификации, руководства, описания, API
|
Поиск на диске является огромным узким местом производительности. Эта проблема становится более очевидной, когда объем данных начинает становиться настолько большим, что эффективное кэширование становится невозможным. Для больших баз данных, где Вы получаете доступ к данным более или менее в произвольном порядке, можно убедиться, что Вы нуждаетесь по крайней мере в одном поиске на диске, чтобы читать и несколько поиска на диске, чтобы записать вещи. Чтобы минимизировать эту проблему, диски использования с низким ищут времена.
Увеличьте число доступных шпинделей диска (и, таким образом, уменьшите искать издержки), или symlinking файлами к различным дискам или чередованием дисков:
Используя символьные ссылки
Это означает это, для MyISAM
таблицы, Вы символьная ссылка
индексный файл и файлы данных от их обычного расположения в каталоге данных к другому
диску (который может также чередоваться). Это делает и искание и времена чтения лучше,
предполагая, что диск не используется в других целях также. См. Раздел
8.11.3.1, "Используя Символьные ссылки".
Чередование средств, что Вы имеете много дисков и помещаете первый блок в первый диск,
второй блок на втором диске, и N
-th блокируют
на (
) диск, и так далее.
Это означает, является ли Ваш нормальный размер данных меньше чем размер дорожки (или
отлично выровненный), Вы получаете намного лучшую производительность. Чередование очень
зависит от операционной системы и размера дорожки, так протестируйте своего приложения в
сравнении с эталоном с различными размерами дорожки. См. Раздел
8.12.3, "Используя Ваши Собственные Сравнительные тесты". N
MOD number_of_disks
Разность оборотов для того, чтобы чередовать очень зависит от параметров. В зависимости от того, как Вы устанавливаете параметры чередования и число дисков, можно было измерить различия в порядках величины. Необходимо хотеть оптимизировать для произвольного доступа или последовательного доступа.
Для надежности можно хотеть использовать RAID 0+1 (чередующий плюс зеркальное
отражение), но в этом случае, Вы нуждаетесь в 2 × N
диски
содержать N
диски данных. Это - вероятно, наилучший вариант,
если у Вас есть деньги для него. Однако, Вам, вероятно, также придется вложить капитал в некоторое
программное обеспечение управления томами, чтобы обработать это эффективно.
Хорошая опция должна изменить уровень RAID согласно тому, насколько критический тип
данных. Например, храните полуважные данные, которые могут быть регенерированы на RAID 0 дисков, но
хранить действительно важные данные, такие как информация об узле и входят в систему RAID 0+1 или RAID
N
диск. RAID N
может
быть проблема, если у Вас есть много записей, из-за времени, требуемого обновить биты четности.
На Linux можно получить намного лучшую производительность при использовании hdparm
сконфигурировать интерфейс Вашего диска. (До 100 % при загрузке весьма
распространены.) Следующий hdparm
опции должны быть довольно хорошими для
MySQL, и вероятно для многих других приложений:
hdparm -m 16 -d 1
Отметьте, что производительность и надежность при использовании этой команды зависят от Ваших
аппаратных средств, таким образом, мы строго предлагаем, чтобы Вы протестировали свою систему
полностью после использования hdparm
. Пожалуйста, консультируйтесь
hdparm
страница руководства для получения дополнительной информации.
Если hdparm
не используется мудро, повреждение файловой системы может
закончиться, так поддержать все перед экспериментированием!
Можно также установить параметры для файловой системы, которую использует база данных:
Если Вы не должны знать, когда файлы были последними, получил доступ (который не действительно
полезен на сервере базы данных), можно смонтировать свои файловые системы с -o
noatime
опция. Это пропускает обновления к прошлому времени доступа в inodes на файловой
системе, которая избегает некоторого поиска на диске.
На многих операционных системах можно установить файловую систему, которая будет обновлена
асинхронно, монтируя это с -o async
опция. Если Ваш компьютер разумно
устойчив, это должно дать Вам лучшую производительность, не жертвуя слишком большой надежностью.
(Этот флаг идет по умолчанию на Linux.)