Я понимаю, что ожидание ввода-вывода, когда я вижу его на сервере, это означает, что ЦП заблокирован, пока я жду, пока ввод-вывод догонит [источник].
Я пытаюсь понять, почему статистика SAN показывает большое ожидание ввода-вывода - указывает ли это, что ЦП SAN заблокирован диском SAN или это что-то еще?
SAN имеет гораздо большую задержку ввода-вывода, чем локальный диск, из-за фундаментальных законов физики. Итак, если ваше приложение выполняет много небольших операций записи и fsync()
после каждого вы увидите много iowait.
Например, вот два репликанта mysql одного и того же набора данных, содержащего множество небольших транзакций, вы увидите, что подчиненное устройство в SAN тратит гораздо больше времени на ввод-вывод.
Сан:
Местный:
Время ожидания SAN может означать, что ваше хранилище является узким местом. Это также могут быть настройки сервера или соединение между вашими серверами и хранилищем, но гораздо чаще, когда я вижу время ожидания для диска SAN, это просто занятая SAN.
Сначала проверьте производительность на дисках, поддерживающих том. Вы ищете всплески операций ввода-вывода в секунду или МБ / с при чтении или записи и, возможно, всплеск использования кеша. Старайтесь смотреть только на оборудование, задействованное в исследуемом томе. Кроме того, посмотрите немного назад и вперед, чтобы увидеть, были ли более высокие всплески, которые не вызывали проблем. Если это так, то вряд ли проблема была в оборудовании хранения. Корректирующее действие для аппаратных узких мест в хранилище может включать в себя миграцию этого тома в другой пул или RAID или увеличение количества шпинделей или кеша.
Во-вторых, проверьте настройки глубины очереди на сервере. Если у вас очень большая глубина очереди, ваш сервер будет видеть более высокие задержки в периоды высокой загрузки. Глубина очереди - это способ хранилища сказать серверу, что нужно ограничить ввод-вывод, позволяя хранилищу наверстать упущенное. 32 - хорошее среднее число, которое будет поддерживаться большинством серверных ОС и большинством устройств хранения, которые я видел. Я также видел более высокую и низкую работу, но если он установлен на 1024 или что-то в этом роде, это может объяснить большое время ожидания. В ситуации, когда глубина очереди очень велика, сервер ставит в очередь все, что он хочет сделать, а затем хранилище делает это так быстро, как если бы глубина очереди была намного меньше. Поскольку сервер измеряет время ожидания с момента, когда что-то поступает в очередь и выходит из нее, время ожидания будет увеличиваться.
Наконец, проверьте журналы ошибок для сервера. Убедитесь, что нет проблем с уровнем передачи (таких как тайм-ауты диска или сбои пути). Если есть, вам стоит заглянуть в переключатель.
Он измеряется не иначе, чем на сервере: поступает больше запросов ввода-вывода, чем может быть обработано доступными аппаратными ресурсами.
Высокое ожидание ввода-вывода, о котором сообщает программное обеспечение для управления SAN, означает, что оборудование SAN не может удовлетворить потребности ваших клиентов SAN. Это связано либо с тем, что ваше оборудование просто не способно выдержать вашу нагрузку, либо может быть что-то неисправно или недостаточно эффективно.
Медленно выходящий из строя диск, вызывающий низкую производительность, на самом деле довольно распространено, особенно в настройках RAID5. Вытащите журналы SMART для всех своих дисков, и я уверен, что вы найдете диск с очень большим количеством исправленных ошибок. (Исправление этих ошибок требует времени. Если отдельная ошибка исправляется в течение определенного промежутка времени, тогда RAID-контроллер не регистрирует ошибку. Но складывается много этих ошибок, и это составляет много времени. И это как получить низкую производительность.)