Команда iostat – анализ обмена данными с дисками

При оценке производительности системы, анализ дисковой подсистемы является не просто важным, но и обязательным этапом в совокупности мероприятий по оптимизации системы в целом. На практике довольно часто случается так, что именно из-за некорректной работы этого программно-аппаратного компонента не удаётся добиться заявленного или приблизиться к потенциальному уровню производительности. Дисковая подсистема — далеко не самый надёжный компонент в высоконагруженной системе и требует довольно тщательного обслуживания. Которое в свою очередь может определяться в результате умелого мониторинга и анализа работы дисков. Да и вообще устройств хранения. Стандартным инструментом, предоставляющим исчерпывающий функционал для задач анализа производительности дисковой подсистемы в Linux является утилита iostat – первоочередное средство для решения подобных задач в системном администрировании.

Установка утилиты iostat

В большинстве дистрибутивов Linux команда iostat недоступна, пока не установлен пакет systat.

Установка в Ubuntu/Debian

$ sudo apt-get install sysstat

Установка в CentOS/RedHat

$ yum install sysstat

Синтаксис и основные опции команды iostat

Синтаксис команды iostat предполагает использование трёх основных опций. Среди которых: интервал замера (в секундах), количество отчётов, а также устройство. В общем виде синтаксис следующий:

iostat [-опции] [device […]] интервал количество_отчётов

В качестве параметра device задаётся анализируемое устройство хранения. Параметры интервал и количество_отчётов задают периодичность замеров и количество выводимых отчётов соответственно.

Среди дополнительных опций самыми полезными являются следующие:

Опция Значение
-p Показывает статистику для указанного устройства с детализацией по его разделам.
-s Выводит отчёты в кратком виде.
-x Выводит отчёты в подробном виде.
-t Выводит значение времени, в которое выполнялся/формировался каждый отчёт.

Остальные опции используются довольно редко. Об их назначении можно более подробно узнать из справочного руководства команды iostat: man iostat.

Примеры использования iostat

Если дать команду iostat без аргументов и опций, то по-умолчанию будет выведен стандартный отчёт для всех имеющихся в системе устройств хранения:

iostat

Как можно видеть, iostat выводит также и информацию об использовании центрального процессора. Параметрами же, характеризующими работу дисковой подсистемы для каждого устройства хранения являются:

  • tps – количество операций ввода/вывода в секунду;
  • kB_read/s – количество операций чтения в секунду;
  • kB_wrtn/s – количество операций записи в секунду;
  • kB_read – суммарный объём считанных данных;
  • kB_wrtn – суммарный объём записанных данных.

Следует отметить, что при анализе значений tps, следует учитывать тот факт, что при одном запросе на пересылку данных может одновременно выполняться несколько запросов для ввода/вывода для сразу нескольких секторов. Поэтому данные результаты нужно сопоставлять с характеристиками самого устройства хранения (жёсткого диска) для получения объективной оценки. Ведь количество секторов может быть разным (в зависимости от используемого диска). И даже, если предположить, что обращение всегда происходит сразу ко всем секторам, то значение tps представляется довольно размытым.

Производительность дисковой подсистемы и её оптимизация

Главным параметром, заметно влияющим на производительность дисков является время, затрачиваемое на поиск требуемых блоков данных. Причём частота вращения самих дисков, а также пропускная способность шины данных диска решающей роли в производительности не играют. Хотя и несколько влияют на неё. На практике для поиска информации на диске выполняется от 100 до 300 операций поиска в секунду. Когда обращение происходит сразу к нескольким секторам диска, то скорость пересылки данных может исчисляться сотнями мегабайт в секунду. Однако, если происходит чтение всего с одного сектора после каждой операции поиска данных. То в этом случае может быть задействовано 5% (и менее) от максимально возможной пропускной способности диска.

Чем большие расстояния преодолевает головка жёсткого диска, тем меньше его производительность. Такое случается например, когда происходит одновременное обращение к нескольким файлам, которые расположены на разных разделах одного диска. Это обстоятельство необходимо учитывать при разметке диска и делать это таким образом, чтобы файлы, к которым происходит одновременное обращение, находились в одной файловой системе/разделе.

Положительно сказывается на производительности дисковой подсистемы также и размещение файловых систем (особенно тех, к которым очень часто происходит одновременное обращение) на отдельные физические диски. Это и понятно, ведь каждое устройство управляется и работает независимо друг от друга. Такой подход часто применяют в веб-хостинге, размещая файлы данных и файлы журналов веб-сервера и/или СУБД (системы управления базами данных) таким образом, чтобы они находились на разных дисках.

Также хорошо сказывается на производительности применение виртуальных дисков. Когда в системе работает специальный драйвер. Который ведёт себя как драйвер устройства хранения. Но на самом деле производит чтение/запись непосредственно в память. Конечно, данный способ применим разве что ко всякого рода временным данным. Вроде кешей, буферов демонов и т. д. Однако, если максимально избавить систему от «бремени» обработки временных файлов через диски. То в результате можно получить ощутимый прирост в производительности дисковой подсистемы. И как следствие — всей системы в целом.

Заключение

В заключение следует отметить, что использование команды iostat – более, чем достаточно для оценки производительности дисков. А вот реализация мер по оптимизации и повышению эффективности дисковой подсистемы требует скрупулёзной подготовки и трудоёмкой работы по программно-аппаратной организации всей системы.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: