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

    fdd-raid По мотивам статьи 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 в разных режимах для каждого диска и сохранять результаты в файлы. Текст командного файла:

       1: sqlio -kR -s300 -b64 -f1 -i4200000 -o1 -t1 -R1 -LP -a2 -BN > R01-b64-f1-i4200000-o1-t1.log

       2: timeout /T 30

       3: sqlio -kW -s300 -b64 -f1 -i4200000 -o1 -t1 -R1 -LP -a2 -BN > W01-b64-f1-i4200000-o1-t1.log

       4: timeout /T 30

       5: sqlio -kR -s300 -b64 -f1 -i4200000 -o1 -t1 -R3 -LP -a2 -BN > R03-b64-f1-i4200000-o1-t1.log

       6: timeout /T 30

       7: sqlio -kW -s300 -b64 -f1 -i4200000 -o1 -t1 -R3 -LP -a2 -BN > W03-b64-f1-i4200000-o1-t1.log

       8: timeout /T 30

       9: sqlio -kR -s300 -b64 -f1 -i4200000 -o1 -t1 -R4 -LP -a2 -BN > R04-b64-f1-i4200000-o1-t1.log

      10: timeout /T 30 sqlio -kW -s300 -b64 -f1 -i4200000 -o1 -t1 -R4 -LP -a2 -BN > W04-b64-f1-i4200000-o1-t1.log

      11: timeout /T 30

      12: sqlio -kR -s300 -b64 -f1 -i4200000 -o1 -t1 -R5 -LP -a2 -BN > R05-b64-f1-i4200000-o1-t1.log

      13: timeout /T 30

      14: 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

       1: sqlio v1.5.SG

       2: calibrating timestamp counter for latency timings... done (MHz measured at 2956)

       3: 1 thread reading for 300 secs from file 5:

       4: using 64KB IOs over 64KB stripes with 4200000 IOs per run

       5: enabling multiple I/Os per thread with 1 outstanding

       6: buffering set to not use file nor disk caches (as is SQL Server)

       7: affinity mask is 0x2 (2)

       8: initialization done

       9: CUMULATIVE DATA:

      10: throughput metrics:

      11: IOs/sec: 843.64 MBs/sec: 52.72

      12: latency metrics:

      13: Min_Latency(ms): 1

      14: Avg_Latency(ms): 1

      15: Max_Latency(ms): 24

      16: histogram:

      17: 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+

      18: %: 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-х дисков.

    1

    Наиболее важной задачей нагрузочного тестирования является выявление дисков, характеристики которых существенно отличаются от остальных. На Рисунке 1 диски практически идентичны, как по записи, так и по чтению.

    II. Выбор размера блока и уровня RAID

    Таблица 1. Характеристики для основных типов нагрузки ввода – вывода SQL Server

    2

    Многие специалисты рекомендуют устанавливать размер блока для форматирования 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 на созданном разделе.

    3

    Смещение равно 32K

    Запускаем тест (см. командный файл в Приложении 1).

    Получаем результаты (см. Рис.4).

    IV. Тест производительности с выравниванием кластеров NTFS и блоков RAID массива

    RAID10 на дисковой полке остается без изменений с предыдущего теста.

    Удаляем раздел из оснастки “Управление дисками”.

    Создаем раздел с использованием:

       1: DISKPART

       2: CREATE PARTITION PRIMARY ALIGN=64

    4

    С помощью оснастки “Управление дисками”, входящей в состав mmc консоли “Управление компьютером” форматируем раздел в NTFS, с размером кластера 64K.

    Диск готов. Запускаем тест (см. командный файл в Приложении 1).

    Получаем результаты (см. Рис.4).

    На рисунке 4 показана сводная таблица с результатами тестов.

    5

    На рисунке 5 показаны результаты тестов в виде графиков.

    6

    Выводы:

    В результате выравнивания кластеров NTFS и блоков RAID массива повышается производительность дисковых операций.

    Повышение производительности зафиксировано на операциях чтения и записи блоками по 8K и 64K.

    Практически все основные типы нагрузки ввода-вывода SQL Server получили выигрыш от этой оптимизации от 9 до 13%.

    Отрицательный и близкий к нулю прирост производительности в таблице результатов тестов можно отнести к погрешностям измерений.

    P.S.: Выражаю благодарность Александру Гладченко за оказание помощи методическими материалами.

    Приложение 1

    Командный файл:

       1: sqlio -kW -s180 -frandom -o8 -b8 -LP -BN -Fparam.txt > WR-b8-LP-BN-F(2-0x0-2048).log

       2: timeout /T 30

       3: sqlio -kW -s180 -frandom -o8 -b64 -LP -BN -Fparam.txt > WR-b64-LP-BN-F(2-0x0-2048).log

       4: timeout /T 30

       5: sqlio -kW -s180 -frandom -o8 -b128 -LP -BN -Fparam.txt > WR-b128-LP-BN-F(2-0x0-2048).log

       6: timeout /T 30

       7: sqlio -kW -s180 -frandom -o8 -b256 -LP -BN -Fparam.txt > WR-b256-LP-BN-F(2-0x0-2048).log

       8: timeout /T 30

       9: sqlio -kW -s180 -frandom -o8 -b512 -LP -BN -Fparam.txt > WR-b512-LP-BN-F(2-0x0-2048).log

      10: timeout /T 30

      11: sqlio -kW -s180 -frandom -o8 -b1024 -LP -BN -Fparam.txt > WR-b1024-LP-BN-F(2-0x0-2048).log

      12: timeout /T 30 sqlio -kW -s180 -fsequential -o8 -b8 -LP -BN -Fparam.txt > WS-b8-LP-BN-F(2-0x0-2048).log

      13: timeout /T 30

      14: sqlio -kW -s180 -fsequential -o8 -b64 -LP -BN -Fparam.txt > WS-b64-LP-BN-F(2-0x0-2048).log

      15: timeout /T 30

      16: sqlio -kW -s180 -fsequential -o8 -b128 -LP -BN -Fparam.txt > WS-b128-LP-BN-F(2-0x0-2048).log

      17: timeout /T 30

      18: sqlio -kW -s180 -fsequential -o8 -b256 -LP -BN -Fparam.txt > WS-b256-LP-BN-F(2-0x0-2048).log

      19: timeout /T 30

      20: sqlio -kW -s180 -fsequential -o8 -b512 -LP -BN -Fparam.txt > WS-b512-LP-BN-F(2-0x0-2048).log

      21: timeout /T 30

      22: sqlio -kW -s180 -fsequential -o8 -b1024 -LP -BN -Fparam.txt > WS-b1024-LP-BN-F(2-0x0-2048).log

      23: timeout /T 30 sqlio -kR -s180 -frandom -o8 -b8 -LP -BN -Fparam.txt > RR-b8-LP-BN-F(2-0x0-2048).log

      24: timeout /T 30

      25: sqlio -kR -s180 -frandom -o8 -b64 -LP -BN -Fparam.txt > RR-b64-LP-BN-F(2-0x0-2048).log

      26: timeout /T 30

      27: sqlio -kR -s180 -frandom -o8 -b128 -LP -BN -Fparam.txt > RR-b128-LP-BN-F(2-0x0-2048).log

      28: timeout /T 30

      29: sqlio -kR -s180 -frandom -o8 -b256 -LP -BN -Fparam.txt > RR-b256-LP-BN-F(2-0x0-2048).log

      30: timeout /T 30

      31: sqlio -kR -s180 -frandom -o8 -b512 -LP -BN -Fparam.txt > RR-b512-LP-BN-F(2-0x0-2048).log

      32: timeout /T 30

      33: sqlio -kR -s180 -frandom -o8 -b1024 -LP -BN -Fparam.txt > RR-b1024-LP-BN-F(2-0x0-2048).log

      34: timeout /T 30 sqlio -kR -s180 -fsequential -o8 -b8 -LP -BN -Fparam.txt > RS-b8-LP-BN-F(2-0x0-2048).log

      35: timeout /T 30

      36: sqlio -kR -s180 -fsequential -o8 -b64 -LP -BN -Fparam.txt > RS-b64-LP-BN-F(2-0x0-2048).log

      37: timeout /T 30

      38: sqlio -kR -s180 -fsequential -o8 -b128 -LP -BN -Fparam.txt > RS-b128-LP-BN-F(2-0x0-2048).log

      39: timeout /T 30

      40: sqlio -kR -s180 -fsequential -o8 -b256 -LP -BN -Fparam.txt > RS-b256-LP-BN-F(2-0x0-2048).log

      41: timeout /T 30

      42: sqlio -kR -s180 -fsequential -o8 -b512 -LP -BN -Fparam.txt > RS-b512-LP-BN-F(2-0x0-2048).log

      43: timeout /T 30

      44: sqlio -kR -s180 -fsequential -o8 -b1024 -LP -BN -Fparam.txt > RS-b1024-LP-BN-F(2-0x0-2048).log

      45: ------------------------------------------

      46:

      47: param.txt

      48: ------------------------------------------

      49: T:\testfile.dat 2 0x0 2048

      50: ------------------------------------------

    Илгиз Мамышев

    • Рубрика: SQL,Новое
    • Автор: Илгиз Мамышев
    • Дата: Tuesday 07 Jul 2009

Комментарии

  1. Спасибо!

  2. Absoletluy first rate and copper-bottomed, gentlemen!

  3. Всем Привет! Продаю программу Office Enterprise 2007 — самый полный набор программ корпорации Майкрософт, предназначенный для тех, кому необходимы эффективные средства совместной работы и обработки информации, доступные независимо от местонахождения пользователя или состояния сети.
    Состав пакета Microsoft Office 2007 Enterprise:
    • Microsoft Office Excel 2007
    • Microsoft Office Outlook 2007
    • Microsoft Office PowerPoint 2007
    • Microsoft Office Word 2007
    • Microsoft Office Access 2007
    • Microsoft Office InfoPath 2007
    • Microsoft Office Publisher 2007
    • Microsoft Office OneNote 2007
    • Microsoft Office Groove 2007
    Добавлены:
    Microsoft Visio Professional 2007
    Microsoft Project Professional 2007
    Microsoft SharePoint Designer 2007
    Купить чере яндекс деньги 100р http://goo.gl/2Q2ODN
    Купить с карт Visa и MasterCard 100р http://goo.gl/Zx50PT
    После оплаты Вым будет доступен файл для скачивания