Я работал над аналогичной настройкой, но в вашем вопросе отсутствует важная информация. Вот список вещей, на которые я бы посмотрел, чтобы выжать максимальную производительность из вашей установки.
В пути блочного ввода-вывода есть несколько уровней, которые вы захотите рассмотреть отдельно. Мне нравится начинать снизу и продвигаться вверх по стеку.
очень базовые уровни от ОС до SAN следующие:
BIO -BLock IO Unit request подано из приложения. поскольку вы говорите о сервере БД, размер этого запроса, вероятно, будет несколько кратным размеру страницы, которую использует БД. (соберите некоторые данные 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 в полете (на lun), прежде чем отклонять новые запросы
SAN -> Как только BIO передаются в SAN, вы теряете контроль над его очередью и принятием решений.
Поскольку вы спросили конкретно о вашем HBA, я бы посмотрел на дроссель выполнения HBA и посмотрел, на что он установлен. Вы можете увидеть, достигли ли вы когда-либо максимума, следя за столбцом «занято»:
cat /proc/scsi/sg/device_hdr /proc/scsi/sg/devices
Затем я бы начал с профилирования рабочей нагрузки вашей системы, собрав данные iostat и vmstat. Затем я бы попытался поиграть с параметрами multipath.conf, параметрами очереди sysfs, параметрами файловой системы и параметрами планировщика ввода-вывода, чтобы увидеть, приводят ли изменения на каждом из этих уровней к повышению производительности блочного ввода-вывода.