Тестирование СХД NetApp FAS при помощи генератора нагрузки IOMeter

    Во время тестирования СХД специалисты часто встречаются с проблемами в производительности в связи с нюансами настройки всего комплекса. Для нагрузочного тестирования СХД не достаточно только лишь запустить симулятор нагрузки, необходимо настроить систему хранения, сеть и хост. Основная масса настроек, как правило, выполняется именно на хосте.

    Целью данной статьи помощь системным администраторам и системным интеграторам в понимании настроек и нюансов при тестировании СХД NetApp. Хочу также отметить, что в этой статье не было задачи в получении максимально возможной производительности контроллеров NetApp FAS 2240, так как на момент тестирования демо оборудования не было достаточного количества дисков (144 максимум) для СХД, а также в наличии был только один сервер. Т.е. максимальная производительность здесь рассматривается в контексте конкретной конфигурации демо стенда, другими словами при большем количестве дисков, серверов и подключений по сети возможно получить результаты ещё лучше с теми же контроллерами 2240. Хотя все графики с результатами производительности взяты с реальных конфигураций конечных заказчиков, использующих в тестах контроллеры 2240, в некоторых тестах использовались четыре SSD 100GB MLC диска.

    Ниже приведено комплексное описание нагрузочного тестирования СХД: настройки симулятора нагрузки IOMeter, методика настройка хоста и СХД NetApp FAS, снятие статистики нагрузки, а также интерпретация полученных результатов. На примере существующего демо стенда будет рассмотрены методы настройки всех его компонент, а также других возможных вариантов конфигураций с использованием NetApp FAS.

    image

    Демо Оборудование

    NetApp FAS HA2240-2 с 4xFC8 портами 24x600х10к SAS, ONTAP 7-Mode 8.2
    SAN свич
    Cisco UCS C210 intel Xeon EM64T 64-bit 2x6 ядер 1,999ГГцб 32ГБ ОЗУ, VMWare ESXi 5.1
    Виртуальная машина с Windows 2008 R2 x64 RDM подключением к LUN.

    СХД

    Все диски поделены поровну между контроллерами: 12ть одному и 12ть другому. На каждом наборе дисков создан один агрегат aggr0, на каждом агрегате присутствует один системный раздел vol0 и один раздел vol1 занимающий всё свободное пространство на агрегате, создан один лун на каждом разделе занимающий всё доступное свободное на нём. Как правило рекомендуется создавать максимально большой агрегат из максимально длинных рейд групп. При создании луна выбиралась геометрия соответствующая хосту к которому будет презентован LUN.

    SAN сеть


    Для мониторинга и траблшутинга SAN коммутатора удобно использовать бесплатную утилиту Brocade SANHealth. Так засорившийся оптико-волоконный разъём может приводить к проблемам в производительности. Из реальной жизни: драйвер мультипасинга с включённой политикой Round-Robin из-за битого линка создавал огромные очереди на HBA адаптере, из-за чего наблюдались большие задержки в системе ввода-вывода и высокая утилизация CPU.
    Также не забывайте что сам FC линк, к примеру, 4G может физически пропускать не более 400 MB/s. При генерации большего трафика вы также заметите повышение утилизации CPU вашего хоста. Посчитать пропускную способность линка просто, учитывая что для FC 1/2/4/8 G используется схема кодирования 8b/10b т.е. мы теряем на накладные расходы 20%. Для FC 16G используется более экономная схема кодирования 64b/66b. Ниже приведён пример расчёта максимальной пропускной способности для FC 4G линка.
    4Gbit = 500 MByte; 500 MByte *8 /10 = 400 Mbyte теоретический максимум пропускной способности такого канала.

    Oncommand Core + Perfomance Adviser

    Рекомендуется установить набор утилит по сбору статистики отображая её в виде графиков Oncommand Core хосте не выполняющем нагрузочное тестирование. Доступно для скачивания с сайта support.netapp.com в разделе Downloads Software (Необходим аккаунт NetApp NOW ID). Логин и пароль на вход в NetApp Managment Console, соответствует логину и паролю хоста.
    Требует наличие бесплатной лицензии пользователей СХД NetApp. Выполняет мониторинг систем FAS. Во время установки выбирайте "Standart Edition", а не "Express", для включения функции сбора статистики и отображения графиков.

    image

    image

    Гостевая ОС

    Windows 2008 R2 x64
    выдано 6 процессоров и 16ГБ ОЗУ
    Гостевой ОС по RDM отданы оба LUN
    В Windows установлен пакет утилит NetApp Host Utilities 6.0.2.
    В некоторых случаях VMFS показывает лучшую производительность по сравнению с RDM. Так в тесте с описанным в тексте патреном нагрузки IOmeter показывал почти 300 MByte/sec при использовании VMFS (см. рисунок в самом верху текста) и около 200 MByte/sec с RDM.

    IOMeter

    Все патерны сервера БД, Web сервера, VDI и сервера виртуализации, для IOMeter в спойлере ниже. Запустите блокнот и сохраните содержимое спойлера, в файл с расширением icf.
    iometer_v110_4k_ALL.icf
    Version 1.1.0
    'TEST SETUP ====================================================================
    'Test Description

    'Run Time
    ' hours minutes seconds
    0 0 0
    'Ramp Up Time (s)
    0
    'Default Disk Workers to Spawn
    NUMBER_OF_CPUS
    'Default Network Workers to Spawn
    0
    'Record Results
    ALL
    'Worker Cycling
    ' start step step type
    1 1 LINEAR
    'Disk Cycling
    ' start step step type
    1 1 LINEAR
    'Queue Depth Cycling
    ' start end step step type
    1 32 2 EXPONENTIAL
    'Test Type
    NORMAL
    'END test setup
    'RESULTS DISPLAY ===============================================================
    'Record Last Update Results,Update Frequency,Update Type
    DISABLED,0,WHOLE_TEST
    'Bar chart 1 statistic
    Total I/Os per Second
    'Bar chart 2 statistic
    Total MBs per Second (Decimal)
    'Bar chart 3 statistic
    Average I/O Response Time (ms)
    'Bar chart 4 statistic
    Maximum I/O Response Time (ms)
    'Bar chart 5 statistic
    % CPU Utilization (total)
    'Bar chart 6 statistic
    Total Error Count
    'END results display
    'ACCESS SPECIFICATIONS =========================================================
    'Access specification name,default assignment
    Default,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,67,100,0,1,4096,0
    'Access specification name,default assignment
    4 KiB; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    4 KiB; 75% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,75,0,0,1,4096,0
    'Access specification name,default assignment
    4 KiB; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    4 KiB; 25% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,25,0,0,1,4096,0
    'Access specification name,default assignment
    4 KiB; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    4 KiB aligned; 100% Read; 100% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,100,100,0,1,4096,0
    'Access specification name,default assignment
    4 KiB aligned; 50% Read; 100% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,50,100,0,1,4096,0
    'Access specification name,default assignment
    4 KiB aligned; 0% Read; 100% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,0,100,0,1,4096,0
    'Access specification name,default assignment
    16 KiB; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    16 KiB; 75% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,75,0,0,1,4096,0
    'Access specification name,default assignment
    16 KiB; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    16 KiB; 25% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,25,0,0,1,4096,0
    'Access specification name,default assignment
    16 KiB; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    32 KiB; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    32 KiB; 75% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,75,0,0,1,4096,0
    'Access specification name,default assignment
    32 KiB; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    32 KiB; 25% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,25,0,0,1,4096,0
    'Access specification name,default assignment
    32 KiB; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    64 KiB; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    65536,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    64 KiB; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    65536,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    64 KiB; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    65536,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    256 KiB; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    262144,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    256 KiB; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    262144,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    256 KiB; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    262144,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    All in one,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,5,100,0,0,1,4096,0
    4096,5,75,0,0,1,4096,0
    4096,5,50,0,0,1,4096,0
    4096,5,25,0,0,1,4096,0
    4096,5,0,0,0,1,4096,0
    4096,5,100,100,0,1,4096,0
    4096,5,50,100,0,1,4096,0
    4096,5,0,100,0,1,4096,0
    16384,4,100,0,0,1,4096,0
    16384,4,75,0,0,1,4096,0
    16384,4,50,0,0,1,4096,0
    16384,4,25,0,0,1,4096,0
    16384,4,0,0,0,1,4096,0
    32768,4,100,0,0,1,4096,0
    32768,4,75,0,0,1,4096,0
    32768,4,50,0,0,1,4096,0
    32768,4,25,0,0,1,4096,0
    32768,4,0,0,0,1,4096,0
    65536,4,100,0,0,1,4096,0
    65536,4,50,0,0,1,4096,0
    65536,3,0,0,0,1,4096,0
    262144,3,100,0,0,1,4096,0
    262144,3,50,0,0,1,4096,0
    262144,3,0,0,0,1,4096,0
    'Access specification name,default assignment
    Database pattern,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    8192,100,67,100,0,1,4096,0
    'Access specification name,default assignment
    Fileserver pattern (Intel),NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    512,10,80,100,0,1,4096,0
    1024,5,80,100,0,1,4096,0
    2048,5,80,100,0,1,4096,0
    4096,60,80,100,0,1,4096,0
    8192,2,80,100,0,1,4096,0
    16384,4,80,100,0,1,4096,0
    32768,4,80,100,0,1,4096,0
    65536,10,80,100,0,1,4096,0
    'Access specification name,default assignment
    Workstation pattern (StorageReview.com),NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    8192,100,80,80,0,1,8192,0
    'Access specification name,default assignment
    Webserver pattern (unknown),NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    512,22,100,100,0,1,4096,0
    1024,15,100,100,0,1,4096,0
    2048,8,100,100,0,1,4096,0
    4096,23,100,100,0,1,4096,0
    8192,15,100,100,0,1,4096,0
    16384,2,100,100,0,1,4096,0
    32768,6,100,100,0,1,4096,0
    66560,7,100,100,0,1,4096,0
    131072,1,100,100,0,1,4096,0
    524288,1,100,100,0,1,4096,0
    'Access specification name,default assignment
    VDI,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,20,80,0,1,4096,0
    'END access specifications
    'MANAGER LIST ==================================================================
    'Manager ID, manager name
    1,MT-RAKITSKAYANB
    'Manager network address

    'End manager
    'END manager list
    Version 1.1.0

    iometer_v20060727_4k_ALL.icf
    Version 2006.07.27
    'TEST SETUP ====================================================================
    'Test Description

    'Run Time
    ' hours minutes seconds
    0 0 0
    'Ramp Up Time (s)
    0
    'Default Disk Workers to Spawn
    NUMBER_OF_CPUS
    'Default Network Workers to Spawn
    0
    'Record Results
    ALL
    'Worker Cycling
    ' start step step type
    1 1 LINEAR
    'Disk Cycling
    ' start step step type
    1 1 LINEAR
    'Queue Depth Cycling
    ' start end step step type
    1 32 2 EXPONENTIAL
    'Test Type
    NORMAL
    'END test setup
    'RESULTS DISPLAY ===============================================================
    'Update Frequency,Update Type
    5,WHOLE_TEST
    'Bar chart 1 statistic
    Total I/Os per Second
    'Bar chart 2 statistic
    Total MBs per Second
    'Bar chart 3 statistic
    Average I/O Response Time (ms)
    'Bar chart 4 statistic
    Maximum I/O Response Time (ms)
    'Bar chart 5 statistic
    % CPU Utilization (total)
    'Bar chart 6 statistic
    Total Error Count
    'END results display
    'ACCESS SPECIFICATIONS =========================================================
    'Access specification name,default assignment
    Default,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    2048,100,67,100,0,1,4096,0
    'Access specification name,default assignment
    4K; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    4K; 75% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,75,0,0,1,4096,0
    'Access specification name,default assignment
    4K; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    4K; 25% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,25,0,0,1,4096,0
    'Access specification name,default assignment
    4K; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    16K; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    16K; 75% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,75,0,0,1,4096,0
    'Access specification name,default assignment
    16K; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    16K; 25% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,25,0,0,1,4096,0
    'Access specification name,default assignment
    16K; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    16384,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    32K; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    32K; 75% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,75,0,0,1,4096,0
    'Access specification name,default assignment
    32K; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    32K; 25% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,25,0,0,1,4096,0
    'Access specification name,default assignment
    32K; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    32768,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    64K; 100% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    65536,100,100,0,0,1,4096,0
    'Access specification name,default assignment
    64K; 75% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    65536,100,75,0,0,1,4096,0
    'Access specification name,default assignment
    64K; 50% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    65536,100,50,0,0,1,4096,0
    'Access specification name,default assignment
    64K; 25% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    65536,100,25,0,0,1,4096,0
    'Access specification name,default assignment
    64K; 0% Read; 0% random,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    65536,100,0,0,0,1,4096,0
    'Access specification name,default assignment
    All in one,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,5,100,0,0,1,4096,0
    4096,5,75,0,0,1,4096,0
    4096,5,50,0,0,1,4096,0
    4096,5,25,0,0,1,4096,0
    4096,5,0,0,0,1,4096,0
    16384,5,100,0,0,1,4096,0
    16384,5,75,0,0,1,4096,0
    16384,5,50,0,0,1,4096,0
    16384,5,25,0,0,1,4096,0
    16384,5,0,0,0,1,4096,0
    32768,5,100,0,0,1,4096,0
    32768,5,75,0,0,1,4096,0
    32768,5,50,0,0,1,4096,0
    32768,5,25,0,0,1,4096,0
    32768,5,0,0,0,1,4096,0
    65536,5,100,0,0,1,4096,0
    65536,5,75,0,0,1,4096,0
    65536,5,50,0,0,1,4096,0
    65536,5,25,0,0,1,4096,0
    65536,5,0,0,0,1,4096,0
    'Access specification name,default assignment
    Database pattern (Intel/StorageReview.com),NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    8192,100,67,100,0,1,4096,0
    'Access specification name,default assignment
    Fileserver pattern (Intel),NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    512,10,80,100,0,1,4096,0
    1024,5,80,100,0,1,4096,0
    2048,5,80,100,0,1,4096,0
    4096,60,80,100,0,1,4096,0
    8192,2,80,100,0,1,4096,0
    16384,4,80,100,0,1,4096,0
    32768,4,80,100,0,1,4096,0
    65536,10,80,100,0,1,4096,0
    'Access specification name,default assignment
    Workstation pattern (StorageReview.com),NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    8192,100,80,80,0,1,4096,0
    'Access specification name,default assignment
    Webserver pattern (unknown),NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    512,22,100,100,0,1,4096,0
    1024,15,100,100,0,1,4096,0
    2048,8,100,100,0,1,4096,0
    4096,23,100,100,0,1,4096,0
    8192,15,100,100,0,1,4096,0
    16384,2,100,100,0,1,4096,0
    32768,6,100,100,0,1,4096,0
    66560,7,100,100,0,1,4096,0
    131072,1,100,100,0,1,4096,0
    524288,1,100,100,0,1,4096,0
    'Access specification name,default assignment
    VDI,NONE
    'size,% of size,% reads,% random,delay,burst,align,reply
    4096,100,20,80,0,1,4096,0
    'END access specifications
    Version 2006.07.27

    Воркеры (процессы генерирующие нагрузку) могут запускаться как на той же машине что и графический интерфейс IOMeter, так и на других машинах (В том числе и разнородных, к примеру Linux и Solaris ) управляемые из одного интерфейса на подобии бот-нет сети.

    По окончанию нагрузки IOMeter предоставит отчёт в виде файла CSV. Но практика показала, что этому отчёту не стоит слишком верить. IOMeter хорош для генерации нагрузки но не для сбора статистики по нагрузке.

    Запущен IOMeter, создано два воркера, каждому отдан один LUN.

    image

    • block 8К
    • 67% read / 33% write
    • 100% random
    • Align I/O on всегда должен быть 4К
    • Outstanding I/O 128


    Align I/O on всегда должен быть 4К, как наиболее подходящий в случае с современными ОС и СХД.

    Максимум 256 для Outstanding I/O, число 128 для параметра означает высокую нагрузку схожую с высоконагруженными БД. Создаём два воркера отдаём одному один LUN, второму второй.


    Устанавливаем максимальный размер тестового файла «Maximum Disk Size» (0 означает все свободное пространство на диске), значение задаётся в секторах, к примеру 204800 сектора (где один сектор равен 512 Byte, так 204800 секторов дадут 100MByte). И задаём патерн нагрузки в поле «Write IO Data Patern».

    Матрица совместимости

    Мне пришлось обновиться с DataOntap 8.1.4 7-Mode до 8.2, обновить HBA FirmWare на хосте. Также необходимо установить тайм-аут жесткого диска (RDM LUN'а) в ESXi окружении.
    У меня получилось всего 7-мь вариантов исходя из описанного выше демо-стенда. Первый же из них мне подошел. Открываю и сверяю что всё сходится. Широко применяйте матрицу совместимости в вашей практике для уменьшения потенциальных проблем в инфрастурктуре ЦОД.

    NetApp Host Utilities

    Не игнорируйте этот пункт. Набор утилит устанавливает правильные задержки, размер очереди на HBA и другие настройки на хосте. Отображает подключённые LUN и их детальную информацию со стороны СХД. Набор утилит бесплатный и может быть скачан с сайта техподдержки нетапа. После установки запустите утилиту
    host_config <-setup> <-protocol fcp|iscsi|mixed> <-multipath mpxio|dmp|non> [-noalua]
    

    Она находиться
    для Solaris
    /opt/NTAP/SANToolkit/bin/
    для Linux
    /opt/netapp/santools/
    для Windows настройки добавятся автоматически при установке.
    После чего, скорее всего, понадобится перезапустить хост.

    MBR

    Для Windows 2008 нужно при создании LUN'а выбрать геометрию диска «Windows 2008».
    При инициализации диска с таблицей MBR, его можно использовать как блочное устройство не форматируя и не создавая ФС или с ФС в ходе теста с IOMeter'ом.

    GPT

    Для Windows 2003 c GPT нужно при создании LUN'а выбрать геометрию диска «Windows GPT» создав на нём файловую систему и производить нагрузку создавая тестовый файл (создание файла может занимать длительное время), в таком тесте будет добавляться прослойка файловой системы.
    Пока что, не поддерживается IOmetr'ом в качестве блочного устройства на самой новой версии 1.1.0.
    IOMeter не умеет пока работать с блочными устройствами инициализированными как GPT. По-этому у нас два пути:
    • использовать блочный доступ с MBR, который не может быть больше 2ТБ, при создании LUN на нетапе выбирать «Windows 2008», на хосте такой лун инициализировать как MBR.
    • форматировать GPT диск и использовать его с файловой системой. Тест поверх блочного устройства провести не получится с GPT

    Сбор статистики на хосте

    Статистика для Unix-like:

    в Solaris как правило есть утилита собирающая подробную статистику о состоянии хоста
    /opt/SUNWexplo/bin/explorer
    


    ESXi performance

    График со статистикой о нагрузке ESXi хоста, обычно совпадает с MS perfmon. Так как не требует отдельной установки и настройки весьма удобен для первичной оценки генерируемой нагрузки. Из командной строки доступен удобный функционал по сбору статистики по размеру блоков которыми оперирует хост, при помощи команды:
    vscsiStats -s -w YYYYY -i XXXX
    Где YYYYY это wouldGroupID виртуальной машины, а XXXX её Virtual SCSI Disk handleID. Подробнее в этой статье.
    А нагрузку на дисковой подсистеме по I/O и латенси можно собрать при помощи команды:
    esxtop -b -a -d %SEC% -n %COUNT% | gzip -9c > /root/esxtop.out.gz
    
    где %SEC% — количество секунд между измерениями, %COUNT% — количество измерений.
    Скачать утилиту ESXplot для анализа получившегося лога можно на сайте VMware, которая может конвертировать вывод в несколько форматов, в том числе и для встроенной утилиты Windows perfmon, что очень удобно.
    image

    Также стоит обратить внимание на следующие компоненты оптимизации


    Linux хост с SAN Хранилище Windows хост с SAN
    Интерпретация результатов тестирования

    SAN Multipathing Linux Хоста

    SAN Multipathing со стороны Хранилища

    SAN Multipathing Windows Хоста

    Thin Provitioning для Linux Хоста с SAN
    Thin Provitioning с хранилища NAS
    Thin Provitioning для Windows Хоста с SAN
    Ethernet

    Ethernet

    Ethernet
    NFS
    iSCSI
    iSCSI
    CIFS
    Хост ESXi
    VAAI & NFS
    Хост ESXi
    Гостевая ОС так и хост BareMetal Linux
    Файловая система
    Файловая система
    Noatime на Хосте
    Noatime на Хранилище NAS
    Запись последнего доступа к файлу на Хосте
    Таблицы загрузки
    Misalignment
    Таблицы загрузки
    Проверка дисков на хранилище
    Статистика для Linux
    PerfStat
    Perfmon.exe и Logman

    P.S. NOW ID

    Если у вас нет NetApp NOW ID, то его можно завести, наличие СХД для этого не требуется. Также для получения перечисленных в этом посте утилит, можно обратиться к вашему Дистрибьютору NetApp, который скачает и передаст наиболее новые их версии.

    Другие генераторы нагрузки

    sio
    fio
    Oracle Orion
    MS SQLIO Disk Subsystem Benchmark Tool
    IOZone
    ATTO Disk Benchmark
    Microsoft Diskspd
    oracle vdbench

    Замечания по ошибкам в тексте и предложения прошу направлять в ЛС.
    • +9
    • 22.7k
    • 6
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 6

      0
      Смонительна ценность совета выставлять dirty_ratio в 40%. Сдохнет машинка под нагрузкой и в худшем случае данные объемом в 40% от объема памяти (а ее сейчас на серверах много) больше не доедут до диска никогда.
        0
        Спасибо за комментарий.
        В тексте статьи написано, что 40% это дефолтное значение, а значение наиболее оптимальное нужно подбирать эмпирическим путём.
        так у одного заказчика наиболее оптимальным значением для RedHat Enterprice Linux6 с СХД NetApp и подключением по FC8GB было vm.dirty_ratio = 2, существенно снизив нагрузку ЦПУ хоста.
        0
        Следующие посты по теме NetApp будут публиковаться здесь habrahabr.ru/users/bbk/topics/
          0
          Вот ещё хорошая статья по интерпретации значений Windows Perfmon.
            0
            Шаблон снятия нагрузки на дисковую подсистему средствами MS Windows perfmon в разрезе по логическим дискам (диски от A до Z).
            Если логического диска в системе нет, то статистика как-бы будет сниматься, но её значение для этого диска всегда будет равно нулю.

          Only users with full accounts can post comments. Log in, please.