Как оценить загруженность дискового устройства в FreeBsd

Система тормозит или база SQL какая-то медленная, но в top(1) ничего подозрительного не видно? Давайте проверим, не перегружен ли какой-то из дисков.

Шаг 1. Запускаем «systat -vm». Говорим ему «:start 2», чтобы он обновлял экран почаще. Вообще, systat(1) — отличный инструмент, сравнимый по важности с top(1), только направленный не на процессы, а на внутренние детали системы. В частности, он показывает простые характеристики загруженности отдельных дисковых устройств. Если загрузка всех дисков существенно меньше 100%, проблема в чем-то другом. Но что если один или несколько дисков «100% busy»? На самом деле, это еще не доказательство проблемы. Дело в том, что показатель «100% busy» говорит только, что дисковое устройство не простаивает, ему есть чем заняться, однако это вовсе не означает, что диск уже не способен на большее. Современные контроллеры и диски могут принимать и обрабатывать несколько запросов параллельно и независимо, например, если это массив RAID, в котором разные запросы можно направить на разные физические приводы. Значит, нам нужна дополнительная информация.

Шаг 2. Если вы также спец по сетям, то обязаны знать, что признаком настоящей перегрузки служит рост очереди на обслуживание. Это применимо и к дискам, ведь система поддерживает очереди между своими внутренними компонентами. Как бы нам изучить состояние дисковой очереди? Достаточно запустить «iostat -x 2», где 2 — пауза между экранами. В этом расширенном режиме iostat(8) покажет не только скорость обмена с каждым дисковым устройством, но также длину его очереди (wait или qlen) и среднее время обслуживания (svc_t). Если очередь большую часть времени — разумной длины (1-2-3) и время обслуживания сопоставимо с периодом оборота диска (порядка 1-10 мс — поделите 60 с на RPM диска), то диск «100% busy» отлично справляется с нагрузкой, хотя ему отдыхать некогда. Но если очередь и время обслуживания постоянно большие, диск безнадежено перегружен и не успевает за потоком запросов — пора искать виновника перегрузки или новое дисковое решение.

Шаг 3, он же 0. В FreeBSD с GEOM увидеть полную картину можно одной утилитой: gstat(8). Она покажет не только длину очереди каждого устройства GEOM, но также раздельно средние времена записи и чтения, так что можно даже понять, тормозит ли запись на диск или чтение с него. (Не уверен, включают ли они время ожидания svc_t или же отражают только время физической операции. Так что посмотреть может быть полезно и на вывод iostat -x.)

http://unixfaq.ru/index.pl?req=qs&id=1005

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Time limit is exhausted. Please reload the CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.