Рассмотрим на тестовой модели (OceanStor Dorado5000 V3, размер блока 8000, чтение 60%, 32 потока, iorate=max, whpct=20) проблему, когда реальный параметр IOPS в тесте vdbench не достигает расчётного – 500 000.
Если посмотреть график, то мы видим высокую задержку в чтении/записи на момент 01-16-2019 15:30. При этом видим бутылочное горлышко в виде 100% загрузки RV-раздела центрального процессора.
Далее видим, что бэкенд пул имеет большое количество операций I/O (2 200 000) предварительного чтения, что является причиной высокой внутренней I/O нагрузки на СХД, в то время как актуальный I/O для хостов - низкий.
Выравнивание I\O может быть связано с методом проверки хоста: vdbench может указывать начальный адрес LUN или начальный раздел диска. Для этого надо проверить информацию о разделах устройства из vdbench: размер LUN >2Тб на хосте Solaris, начальный сектор по умолчанию 40 секторов (40*512 байт = 20 кБ), блок данных (база данных или файловая система) не выровнен с размером I\O СХД (8000). Что в итоге и приводит к уменьшению эффективности работы.
Для решения меняем стартовый раздел диска до 64 секторов, чтобы он соответствовал СХД. Если на диске присутствуют пользовательские данные, то надо создать LUN, раздел и после чего скопировать данные со старого раздела в новый.