qlogic HBA тюнинг рекомендации случайные iops
Попытка выжать максимальную производительность из 3PAR SAN с Qlogic HBA на наших серверах HP. Мы работаем на Centos 5.5 с последними обновлениями / ядром.
Может ли кто-нибудь дать полезную рекомендацию или настройку, чтобы получить максимальные случайные IOPS?
Сейчас мы находимся около 290 случайных IOPS и считаем, что это число должно быть намного выше.
1 ответ
Я работал над подобной настройкой, но в вашем вопросе не хватает важной информации. Вот список вещей, на которые я бы посмотрел, чтобы выжать максимальную производительность из ваших настроек.
В блочном пути ввода-вывода есть несколько слоев, которые вы хотите рассмотреть отдельно. Мне нравится начинать снизу и подниматься вверх по стеку.
Основные уровни от ОС до SAN:
BIO -BLock IO Unit запрос отправлен из приложения. поскольку вы говорите о сервере БД, размер этого запроса, вероятно, будет несколько кратным размеру страницы, который использует БД. (соберите некоторые данные iostat, чтобы увидеть, каков средний размер запроса на устройство)
Device Mapper / Multipath (/ dev / dm- *) -BIO отправляется на виртуальное устройство, созданное multipathd, если это то, что вы используете? -> Планировщик ввода-вывода на уровне виртуальных устройств принимает решения на основе чтения или записи BIO и либо объединяет запрос в существующую очередь, либо добавляет запрос в новую очередь (здесь происходит больше логики, но это выходит за рамки этой области) -> Поскольку устройство управляется multipathd, решения о маршрутизации о том, как распределить BIO на базовые устройства, можно найти в /etc/multipathd.conf -> в этом конфигурационном файле есть настраиваемые параметры, которые изменяют способ распределения блоков BIO по путям.
Основные физические пути, составляющие виртуальное устройство /dev/sd* -> Как только BIO доставлены на эти базовые устройства -> здесь принимается больше решений в зависимости от параметров очереди ->BIO передаются на HBA
HBA -HBA (qlogic) имеет дроссель выполнения, который говорит, что карта может иметь x количество BIO в полете (за луну) до отклонения новых запросов
SAN -> Как только BIO передаются в SAN, вы теряете контроль над его очередью и принятием решений.
Поскольку вы спрашивали конкретно о вашем HBA, я бы посмотрел на ваш дроссель выполнения HBA и проверил, на что он установлен. Вы можете увидеть, достигли ли вы когда-либо максимума, следя за столбцом занятости:
cat /proc/scsi/sg/device_hdr /proc/scsi/sg/devices
Далее я бы начал с профилирования рабочей нагрузки вашей системы путем сбора данных iostat и vmstat. Затем я попытался бы поиграться с параметрами multipath.conf, параметрами sysfs в очереди, параметрами файловой системы и параметрами планировщика ввода-вывода, чтобы посмотреть, приведут ли изменения к каждому из этих слоев к лучшей производительности ввода-вывода блока. Не забудьте вносить только 1 изменение за раз и выполнять не менее 3 или около того тестов на изменение при сборе данных.