Средства мониторинга производительности: sysstat

Команда консоли sysstat похожа на vmstat и iostat свернутые в одну команду. Она сообщает данные производительности систем хранения, такие как CPU utilization, размеры дискового трафика, объемы ввода-вывода, как сетевого, так и по FC, а также трафик передачи данных на ленту, если она используется. При запуске без опций, sysstat печатает новую строку каждые 15 секунд, с базовым набором информации. Вы можете прервать вывод нажав control-C (^c) или установить при запуске определенный интервал работы (-c count ) для автоматической остановки через заданное время.
Список ключей команды:

-f статистика FCP
-i статистика iSCSI
-b расширенная статистика SAN (’blocks’)
-u расширенная статистика загрузки системы (’utilization’)
-x расширенный (’extended’) формат вывода. Включает в себя все доступные поля вывода.

Обратите внимание, что вывод производится в формате шире чем 80 символов, и предназначен скорее для “off-line” анализа, чем для непосредственного чтения с экрана.

-m отображает статистику по загрузке CPU на многопроцессорных системах. Применимо только на многопроцессорных системах, не работает на однопроцессорных.

Описания некоторых колонок вывода команды sysstat.

Cache age : возраст в минутах старейшего read-only блока в кэше. Значение в этой колонке показывает, насколько быстро операции чтения проходят через память системы; когда система читает очень большие файлы, значение buffer cache age будет низким. Кроме этого, если чтение преимущественно случайное, то cache age также будет низок. Если вы столкнулись с проблемой низкой производительности на чтении, то значение этого поля сможет помочь определить что вам нужно больше кэша, или нужно проанализировать работу приложения, чтобы снизить уровень “случайности” его запросов.

Cache hit : Величина в процентах для WAFL cache hit rate. Показывает, в скольки процентах читаемых с WAFL блоков они оказывались при этом уже в кэше. Прочерк в этой колонке, означает, что в измеряемый период данные не читались.

CP Ty : Тип (’type’) Consistency Point (CP). Показывает, что было причиной создания CP в рассматриваемом интервале. Тип CP может быть:

- не было CP в заданный интервал (не было записей на диск в указанный период времени)

(число) число CP, созданных в заданном интервале

B : Back to back CPs (CP generated CP) (система настолько загружена, что она начинает писать новую CP сразу за окончанием записи предыдущей)

b : задержанные back to back CPs (CP generated CP) (условия, вызвавшие состояние back to back стали хуже)

F : CP вызван заполнением NVLog (половина nvram log была заполнена, и он был сброшен на диск)

H : CP вызван high water mark (редко встречается. Система полностью заполнила одну половину nvram logs, и решила сбросить данные на диск).

L : CP вызван low water mark

S : CP вызван операцией создания snapshot

T : CP вызван таймером (каждые 10 секунд система хранения сбрасывает данные кэша на диск (flush))

U : CP вызван сбросом данных на диск (flush)

: продолжение CP с предыдущего интервала (означает, что CP все еще создается, например во время 1-секундного интервала)

Символ, следующий далее, показывает проходящую фазу создания CP на момент окончания интервала замера. Если CP завершился полностью во время интервала измерения, то второй символ будет пустой. Фазы могут быть следующие:

0 ??нициализация
n обработка обычных файлов
s обработка специальных файлов
f сброс измененных данных на диск
v сброс измененного суперблока на диск

Большинство перечисленных выше значений можно увидеть только в случае предельно малых интервалов замеров, или на сильно загруженных системах, так как сброс CP происходит очень быстро. Обычно в поле CP ty вы будете видеть ‘T’, штатный сброс Consistency Point по таймеру.

Давайте разберем пример.

sysstat.txt (для более удобного вида отключите в нотепаде word wrap и расширьте окно)

Что мы можем сказать о данной системе?
Это малозагруженная, практичеси находящаяся в покое система (параметры CPU, Disk Usage и Total), использующая CIFS и FCP (небольшие ненулевые значения показывают фоновые операции по этим протоколам). Большиство операций в этой покоящейся системе совершается в виде чтения содержимого кэша (значение Cache hit). Кэш практически пуст, на что указывает монотонное возрастание значения Cache age, данные лежат, и ничто их не вытесняет. Consistency Points создаются исключительно сбросом по таймеру, что нормальное поведение для незагруженной системы.
Довольно высокие значения Disk read write при малой загрузке CPU, практически нулевом сетевом траффике и операциях ввода-вывода по блочным протоколам указывает на работу процесса Disk Scrubbing, фонового процесса контроля целостности данных и дисков, при котором система перечитывает и перезаписывает данные на дисках, возможно также что работает дедупликация, хотя она обычно дает повыше чем 1-3% загрузку, также, возможно, это признак работы дефрагментации WAFL (wafl reallocate).

Так выглядит типичный вывод sysstat малонагруженной типовой системы NetApp FAS.

А вот так выглядит система под рабочей нагрузкой: sysstat3.txt

Как видите, уже заметно нагружен процессор (это FAS6070, поэтому запас еще весьма существеннен ;), около 20%. Так как система используется как SAN, то весь трафик идет по колонке FCP. Несмотря на заметную нагрузку, ниже приведенный отчет по utilization показывает производительность около 15000 IOPS, и около 23 MB/s чтения с дисков ( и 70-90MB/s по интерфейсам FC), это не перегрузило систему. Большой объем кэша на чтение позволяет 90% операций читаться из кэша, а не с дисков.
Возраст самого старого блока в кэше составляет примерно 10-12 минут, то есть кэш еще далек от заполнения.
Здесь уже периодически проскакивают символы, показывающие фазу сброса CP, и само время записи CP увеличилось, так как вырос объем записи, хотя он и составляет всего около 1/10 от объемов чтения.

Таким образом, используя даже штатные средства контроля и анализа системы, имеющиеся в административной консоли, можно увидеть много интересного.

Оригинал тут:

http://unixfoo.blogspot.com/2007/11/netapp-performance-monitoring-sysstat_16.html

А вообще это, за исключением моего разбора примера вывода, практически перевод манов к команде из встроенного хелпа.

One Comment

  1. bbk:

    А можно подробнее о high water mark, low water mark и о втором символе в поле CP Ty, что это такое?

    Скажите, какой командой можно посмотреть тип и собственно саму нагрузку генерируемую клиентом?

    У вас в абзаце про Disk Scrubbing нет ссылочки на sysstat2.txt.

Оставить комментарий