Автор: Paul Randal, Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly?
Я только что настраивал некоторое новое оборудование и хотел провести некоторое фоновое чтение, чтобы убедиться, что я использую правильное смещение раздела диска, размер страйпа RAID и размер единицы выделения NTFS для достижения наилучшей возможной производительности для создаваемых томов.
Возможно, вы даже не слышали об этом (или ваши администраторы дисков не слышали об этом), но на старых версиях Windows Server 2003 и ранее смещение раздела по умолчанию обычно приводило к неоптимальной производительности — и его исправление давало выигрыш до 30% с точки зрения задержки ввода-вывода и длительности операций. Группа SQLCAT тогда опубликовала фантастический технический документ (написанный Джимми Мэем и Денни Ли), который объяснял проблему просто и ясно и показывал, как её исправить: Disk Partition Alignment Best Practices for SQL Server.
Суть в том, что на Windows Server 2003 и более ранних версиях смещение раздела по умолчанию составляло 31,5 КБ (63 × 512-байтовых сектора диска), что не очень хорошо сочетается с распространёнными размерами страйпов RAID (64 КБ или 128 КБ) или оптимальным размером единицы выделения NTFS (64 КБ). Это может привести к необходимости чтения/записи нескольких полос время от времени и значительному падению производительности. Это можно было исправить, как подробно описано в техническом документе. Для томов, созданных на Windows Server 2008 и позже, эта проблема не существует, так как создаётся смещение раздела по умолчанию 1024 КБ.
Следующее, что я рассмотрел, — это размер страйпа RAID и размер единицы выделения NTFS (ранее известный как «размер кластера»). Ранее Кендал Ван Дайк опубликовал отличную серию статей в своём блоге "Disk Performance Hands On Series", которая предоставляет много эмпирических данных о том, какие числа лучше всего подходят для используемого уровня RAID. Это сэкономило мне много времени.
Кендал протестировал три варианта размера страйпа на массиве RAID 10, состоящем из четырех дисков :
- 8 KB — чтобы соответствовать размеру страницы SQL Server (8 KB).
- 64 KB — стандартный размер, который чаще всего используется на серверах.
- 128 KB — чтобы проверить, дает ли больший размер преимущество.
Тесты проводились для рабочей нагрузки OLTP, которая в основном состоит из случайных операций чтения и записи размером 8 KB .
Первоначальные результаты показали, что размер полосы 128 KB дает наилучшую производительность. Однако позже автор обнаружил, что в его расчеты закралась ошибка.
После внесения исправлений и перепроверки данных выяснилось, что оптимальным является размер страйпа 64 KB в сочетании со смещением раздела 64 KB и размером блока файловой системы 64 KB .
Используемые мной устройства Dell MD3000i не позволяют устанавливать размер полосы RAID меньше 128 КБ, так что значение по умолчанию подходит. К сожалению, я забыл установить размер единицы выделения NTFS на 64 КБ при создании разделов в Windows, поэтому мне нужно пересоздать разделы.
Огромное спасибо этим ребятам за то, что сэкономили мне много времени и хлопот. Вам тоже стоит учитывать этот материал в своих конфигурациях.

Комментариев нет:
Отправить комментарий