Архив

Posts Tagged ‘Выравнивание’

Необходимо ли в Windows Server 2008 выравнивание кластеров NTFS и блоков RAID массива?

В моем предыдущем сообщении — Выравнивание кластеров NTFS и блоков RAID массива (детальный тест для SQL Server) Илья Сазонов (sie) оставил комментарий о том что затронутые проблемы с выравниванием наблюдались в операционных системах Windows Server 2003 (и Windows XP), но не существуют в Windows Server 2008 и Windows Vista — там сдвиг изначально кратен 1024.

Проверяем..

На виртуальной машине установлен Windows Server 2008 Core, раздел создавался мастером установки.

Да, действительно, смещение равно 1024Kb.

Несомненно это еще один плюс в копилку Windows Server 2008!

Спасибо Илья, за ваш ценный комментарий!

Полезные ссылки:
http://support.microsoft.com/kb/929491?wa=wsignin1.0
http://support.microsoft.com/kb/931854 

Реклама
Рубрики:SQL Server

Выравнивание кластеров NTFS и блоков RAID массива для разделов Exchange Server 2003, 2007

Продолжаю говорить про выравнивание кластеров и блоков, только уже применительно Exchange Server 2003, 2007.
Начинали с теста — Выравнивание кластеров NTFS и блоков RAID массива (детальный тест для SQL Server)Вот что интересного про это я узнал:Why should you use Diskpar (Diskpart in W2003 SP1)?
Блог разработчиков Exchange 2003, в котором пишут про необходимость выравнивания разделов и рекомендации относительно размера кластера NTFS под разделы с файлами баз данных.А вот что пишется в документации по Exchange 2007 про Проектирование раздела
Немного процитирую оттуда:
========
Согласование раздела
Большинство разделов, созданных с помощью средства управления дисками, являются несогласованными. Поэтому рекомендуется создавать разделы с помощью средства Diskpart.exe. Выравнивание секторов по границам дорожек может улучшить производительность, в зависимости от хранилища. Обязательно используйте значение, рекомендуемое поставщиком хранилища. Если поставщик не рекомендует никакого значения, используйте значение 64 КБ. При выполнении Exchange 2007 на Windows Server 2003 рекомендуется использовать Diskpart для согласования границ дорожек хранилища на всех серверах почтовых ящиков (включая кластерные), пограничных транспортных серверах и транспортных серверах-концентраторах, независимо от того, какой тип раздела используется. Подробное описание процедуры использования средства Diskpart для согласования ввода-вывода с границами дорожек хранилища см. в разделе Инструкции по выравниванию ввода-вывода Exchange относительно границ дорожек хранилища. Программу Diskpart не требуется использовать для Exchange 2007 с пакетом обновления 1 (SP1) на Windows Server 2008.Размер кластера раздела
Рекомендуется использовать на сервере Exchange 2007 размер кластера тома NTFS, на котором размещены базы данных, равный 64 КБ. Эта рекомендация основана на зафиксированном повышении производительности при выполнении масштабных операций последовательного чтения. Такой тип профиля характерен для потокового резервного копирования и задач служебных программ баз данных сервера Exchange (Eseutil).В некоторых случаях улучшения заметны при выполнении операций последовательного ввода-вывода, особенно при выполнении потокового резервного копирования или при использовании служебной программы Eseutil для проверки целостности контрольной суммы теневого копирования томов (VSS) или восстановления базы данных. Обязательно используйте значение, рекомендуемое поставщиком хранилища. Если поставщик не рекомендует никакого значения, используйте значение 64 КБ.Проверка показывает, что увеличение размера кластера тома NTFS с 4 КБ до 64 КБ не приводит к росту производительности ведения журнала транзакций. Поэтому для томов NTFS, на которых находятся файлы журналов транзакций, можно использовать заданный по умолчанию размер кластера тома NTFS (4 КБ).
========В общем случае хотелось бы отметить, что рассогласованность кластеров NTFS и блоков RAID массива это не проблема каких то конкретных приложений типа SQL Server и Exchange Server, просто они наиболее чувствительны к таким моментам, т.к. активно работают с дисковой подсистемой операционной системы. Это скорее проблема дисковой подсистемы операционной системы, которая неверно сконфигурирована техническим специалистом, развертывающим эту систему, который как говорится «не в теме» проблемы.
В операционной системе Windows Server 2008 такую ошибку (рассогласованность кластеров NTFS и блоков RAID массива ) допустить много сложнее, т.к. при создании раздела смещение автоматически выбирается равным 1024KB, что в свою очередь автоматически влияет на согласованность кластеров NTFS и блоков RAID массива.

Обновление:
Exchange Server 2010: Understanding Storage Configuration
Как фрагментация на неправильно отформатированных томах NTFS влияет на Exchange

Рубрики:Exchange

Выравнивание кластеров NTFS и блоков RAID массива (детальный тест для SQL Server )

По мотивам статьи Tips for DBA: выравнивание кластеров NTFS и блоков RAID-массивов Александра Гладченко.
Выравнивание размеров кластеров файловой системы и блоков RAID массива позволит увеличить производительность дисковых операций. — А на сколько и на каких операциях?
Я решил сам проверить это! — Это будет Честный детект.. Потестируем..
Цель теста:
Измерить прирост производительности дисковой подсистемы в контексте дисковых операций MS SQL Server и оценить степень этого прироста.
Материальное обеспечение теста:
— Сервер HP DL560 G1 2 CPU, 4GB RAM, Windows Server 2003 R2 SP2 Standard;
— Дисковый массив HP MSA 1000;
— 4 диска Ultra SCSI 320 300GB 10K;
I. Калибровка дисков
Задача: На этом этапе мы должны убедиться, что используемые диски работоспособны, определить разброс скоростей чтения и записи по дискам, чтобы потом учитывать возможности каждого диска при распределении дисков в массивах.
Поскольку диски с повреждениями или существенными отклонениями от средней производительности, скорее всего, ведут себя одинаково плохо под разными типами рабочей нагрузки, а также потому, что дальнейшее тестирование также может выявить проблемные диски, мы ограничимся одним, грубым тестом. Для проведения этого калибровочного теста необходимы следующие подготовительные действия:
1. С помощью поставляемых с дисковым контроллером HP MSA 1000 специализированных утилит, установленных на сервере, конфигурируем все диски полки как 4 массива RAID0, каждый из которых состоит из одного диска, размер каждого массива выбирается равным всему доступному размеру диска, размер блока низкоуровневой разметки выбираем равным 64Кб, для чистоты измерений кэширование чтения и записи для этих дисков отключаем.
2. С помощью оснастки управления дисками, входящей в состав mmc-консоли управления компьютером, создаем для каждого физического диска полки RAW-раздел (без форматирования NTFS) величиной на весь диск, и без присвоения буквы диска (буквы присваивать можно, но это не обязательно).
3. Установить программу SQLIO Disk Subsystem Benchmark Tool. Везде по тексту настоящей статьи местоположение программы sqlio.exe выбрано следующее: C:\SQLIO\sqlio.exe
Более подробно об утилите можно узнать в статье —
Эталонный тест дисковой подсистемы SQLIO.
4. Подготовим командный файл, который будет запускать программу sqlio.exe в разных режимах для каждого диска и сохранять результаты в файлы. Текст командного файла:
——————————————
sqlio -kR -s300 -b64 -f1 -i4200000 -o1 -t1 -R1 -LP -a2 -BN > R01-b64-f1-i4200000-o1-t1.log
timeout /T 30
sqlio -kW -s300 -b64 -f1 -i4200000 -o1 -t1 -R1 -LP -a2 -BN > W01-b64-f1-i4200000-o1-t1.log
timeout /T 30
sqlio -kR -s300 -b64 -f1 -i4200000 -o1 -t1 -R3 -LP -a2 -BN > R03-b64-f1-i4200000-o1-t1.log
timeout /T 30
sqlio -kW -s300 -b64 -f1 -i4200000 -o1 -t1 -R3 -LP -a2 -BN > W03-b64-f1-i4200000-o1-t1.log
timeout /T 30
sqlio -kR -s300 -b64 -f1 -i4200000 -o1 -t1 -R4 -LP -a2 -BN > R04-b64-f1-i4200000-o1-t1.log
timeout /T 30
sqlio -kW -s300 -b64 -f1 -i4200000 -o1 -t1 -R4 -LP -a2 -BN > W04-b64-f1-i4200000-o1-t1.log
timeout /T 30
sqlio -kR -s300 -b64 -f1 -i4200000 -o1 -t1 -R5 -LP -a2 -BN > R05-b64-f1-i4200000-o1-t1.log
timeout /T 30
sqlio -kW -s300 -b64 -f1 -i4200000 -o1 -t1 -R5 -LP -a2 -BN > W05-b64-f1-i4200000-o1-t1.log
——————————————
В этом файле каждый вызов программы sqlio.exe имеет одинаковые аргументы, кроме аргумента R, который имеет значения 1, 3, 4, 5 — номера дисков согласно консоли «Управление дисками». Каждый диск тестируется на чтение и, после 30 секундной паузы, на запись (аргумент k). Время тестирования каждого диска 300 секунд (аргумент s), размер блока 64Кб (аргумент b), Число блоков в строке равно единице (аргумент f), число строк равно 4200000 (аргумент i), число очередей тоже равно единице (аргумент o), число потоков равно единице (аргумент t). Суммарный размер файла рабочей нагрузки на каждом диске составляет ~270Гб, что почти совпадает с размером диска.

Образец вывода программы sqlio.exe
——————————————
sqlio v1.5.SG
calibrating timestamp counter for latency timings… done (MHz measured at 2956)
1 thread reading for 300 secs from file 5:
using 64KB IOs over 64KB stripes with 4200000 IOs per run
enabling multiple I/Os per thread with 1 outstanding
buffering set to not use file nor disk caches (as is SQL Server)
affinity mask is 0x2 (2)
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec:   843.64
MBs/sec:    52.72
latency metrics:
Min_Latency(ms): 1
Avg_Latency(ms): 1
Max_Latency(ms): 24
histogram:
ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%:  0 100  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
——————————————
5. Запустим командный файл на исполнение, а потом сведем собранные в файлы результаты в общую таблицу, для дальнейшего сравнения и анализа (отберем только интересующие нас данные — метрику «MBs/sec»).
На Рисунке 1 показан результат калибровочного тестирования 4-х дисков.
Rfkb,hjdrf lbcrgп
Рис.1
Наиболее важной задачей нагрузочного тестирования является выявление дисков, характеристики которых существенно отличаются от остальных. На Рисунке 1 диски практически идентичны, как по записи, так и по чтению.
II. Выбор размера блока и уровня RAID
Таблица 1. Характеристики для основных типов нагрузки ввода – вывода SQL Server
image_13
Многие специалисты рекомендуют устанавливать размер блока для форматирования NTFS раздела операционной системы Windows равным 64 Кб и делать такого же размера размер страйпа при монтировании дискового массива. Данная тема многократно обсуждалась во многих источниках.
На этом не задерживаемся — выбираем 64K.
В выборе уровня RAID я остановлюсь на RAID10. Выбор оптимального уровня RAID не цель этой статьи, — это много раз обсуждалось и обсуждается в других источниках.
RAID будет подвержен тестовым сериям измерения скорости чтения и записи, для разных размеров блока. Размер блока (который задаётся параметром –b) будет принимать следующий набор значений: 1024, 512, 256, 128, 64, 8. Размеры блока соответствуют размерам основных типов запросов ввода-вывода.
III. Тест производительности без выравнивания кластеров NTFS и блоков RAID массива
С помощью поставляемых с дисковым контроллером HP MSA 1000 утилит создаем массив RAID10 из четырех имеющихся дисков, размер выбирается максимально доступный, размер блока низкоуровневой разметки выбираем равным 64Кб, кэширование чтения и записи для этого диска отключаем.
С помощью оснастки «Управление дисками», входящей в состав mmc консоли «Управление компьютером» создаем раздел величиной в весь диск, форматируем в NTFS, с размером кластера 64K.
Диск готов.
Узнаем, для информации, смещение кластеров NTFS на созданном разделе.
image_8
Рис.2
Смещение равно 32K
Запускаем тест (см. командный файл в Приложении 1).
Получаем результаты (см. Рис.4).
IV. Тест производительности с выравниванием кластеров NTFS и блоков RAID массива
RAID10 на дисковой полке остается без изменений с предыдущего теста.
Удаляем раздел из оснастки «Управление дисками».
Создаем раздел с использованием DISKPART
CREATE PARTITION PRIMARY ALIGN=64
image_10
Рис.3
С помощью оснастки «Управление дисками», входящей в состав mmc консоли «Управление компьютером» форматируем раздел в NTFS, с размером кластера 64K.
Диск готов. Запускаем тест (см. командный файл в Приложении 1).
Получаем результаты (см. Рис.4).
На рисунке 4 показана сводная таблица с результатами тестов.
image_5
Рис.4
На рисунке 5 показаны результаты тестов в виде графиков.
image_11
Рис. 5
Выводы:
В результате выравнивания кластеров NTFS и блоков RAID массива повышается производительность дисковых операций.
Повышение производительности зафиксировано на операциях чтения и записи блоками по 8K и 64K.
Практически все основные типы нагрузки ввода-вывода SQL Server получили выигрыш от этой оптимизации от 9 до 13%.
Отрицательный и близкий к нулю прирост производительности в таблице результатов тестов можно отнести к погрешностям измерений.
P.S.: Выражаю благодарность Александру Гладченко за оказание помощи методическими материалами.
Приложение 1
Командный файл:
——————————————
sqlio -kW -s180 -frandom -o8 -b8 -LP -BN -Fparam.txt > WR-b8-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -frandom -o8 -b64 -LP -BN -Fparam.txt > WR-b64-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -frandom -o8 -b128 -LP -BN -Fparam.txt > WR-b128-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -frandom -o8 -b256 -LP -BN -Fparam.txt > WR-b256-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -frandom -o8 -b512 -LP -BN -Fparam.txt > WR-b512-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -frandom -o8 -b1024 -LP -BN -Fparam.txt > WR-b1024-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -fsequential -o8 -b8 -LP -BN -Fparam.txt > WS-b8-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -fsequential -o8 -b64 -LP -BN -Fparam.txt > WS-b64-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -fsequential -o8 -b128 -LP -BN -Fparam.txt > WS-b128-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -fsequential -o8 -b256 -LP -BN -Fparam.txt > WS-b256-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -fsequential -o8 -b512 -LP -BN -Fparam.txt > WS-b512-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kW -s180 -fsequential -o8 -b1024 -LP -BN -Fparam.txt > WS-b1024-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -frandom -o8 -b8 -LP -BN -Fparam.txt > RR-b8-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -frandom -o8 -b64 -LP -BN -Fparam.txt > RR-b64-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -frandom -o8 -b128 -LP -BN -Fparam.txt > RR-b128-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -frandom -o8 -b256 -LP -BN -Fparam.txt > RR-b256-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -frandom -o8 -b512 -LP -BN -Fparam.txt > RR-b512-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -frandom -o8 -b1024 -LP -BN -Fparam.txt > RR-b1024-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -fsequential -o8 -b8 -LP -BN -Fparam.txt > RS-b8-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -fsequential -o8 -b64 -LP -BN -Fparam.txt > RS-b64-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -fsequential -o8 -b128 -LP -BN -Fparam.txt > RS-b128-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -fsequential -o8 -b256 -LP -BN -Fparam.txt > RS-b256-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -fsequential -o8 -b512 -LP -BN -Fparam.txt > RS-b512-LP-BN-F(2-0x0-2048).log
timeout /T 30
sqlio -kR -s180 -fsequential -o8 -b1024 -LP -BN -Fparam.txt > RS-b1024-LP-BN-F(2-0x0-2048).log

——————————————
param.txt
——————————————
T:\testfile.dat 2 0x0 2048
——————————————
Рубрики:SQL Server