ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Проблемы дискового ввода-вывода (I/O): понимание и устранение их для повышения производительности системы

Проблемы дискового ввода-вывода (I/O): понимание и устранение их для повышения производительности системы

Проблемы с дисковым вводом-выводом и использованием свободного места являются распространенными причинами снижения производительности вычислительных систем. Низкая скорость работы системы может напрямую повлиять на ее способность извлекать и хранить информацию на диске.

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

 

Что вызывает проблемы с дисковым вводом-выводом?

Проблемы дискового ввода-вывода могут быть результатом сложности хранилища, узких мест приложений, конфигураций RAID, времени отклика и дизайна. Давайте рассмотрим некоторые из этих моментов подробнее.

Виртуальное хранилище

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

Узкие места приложений

Приложения с интенсивным вводом-выводом часто вызывают узкие места и проблемы с задержкой хранения. В основном они возникают, когда несколько загруженных приложений используют одно и то же хранилище данных. Лучшее решение узких мест приложений – найти способ обрабатывать приложения с низкой пропускной способностью хранилища и использовать большую базу пользователей.

Конфигурация RAID

Конфигурация RAID может использоваться для хранения данных в приложении как на аппаратном, так и на программном уровнях. Конфигурация RAID распределяет запросы ввода-вывода и копии данных по нескольким дискам, повышая ввод-вывод и надежность хранилища. Любая проблема в физическом устройстве или программном обеспечении, управляющем RAID-массивом (например, из-за возраста, недостаточной конфигурации или устаревшего программного обеспечения), может привести к замедлению запросов ввода-вывода.

Время отклика ввода-вывода

Увеличение времени отклика ввода-вывода хранилища может снизить производительность ввода-вывода. Когда устройству хранения требуется больше времени для ответа на запрос ввода-вывода, это указывает на наличие узкого места на уровне хранения. Дополнительная нагрузка на существующие узкие места ввода-вывода хранилища приводит к постоянной задержке во времени отклика.

Плохая конструкция хранилища

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

 

Влияние проблем дискового ввода-вывода

Чтобы выявить и устранить проблемы дискового ввода-вывода, важно понимать, как они могут проявляться в вашей системе. Проблемы дискового ввода-вывода могут влиять на производительность системы несколькими способами:

 

Мониторинг производительности диска

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

 

Выявление проблем дискового ввода-вывода

После измерения и мониторинга производительности диска с использованием вышеуказанных показателей мы можем использовать команды для выявления проблем дискового ввода-вывода. Три наиболее часто используемые команды для устранения неполадок: df, iostat, и vmstat.

С помощью команды df

Команда df – это сокращенное название файловой системы диска. Это одна из самых основных команд для устранения проблем дискового ввода-вывода. Если место недоступно, операции записи завершатся ошибкой. Команда df отображает используемое и доступное пространство для всех смонтированных файловых систем в Linux. Используемое и оставшееся пространство по умолчанию отображается блоками размером 1 Тыс.

 

Синтаксис:

df [OPTIONS] [FILES]

 

Пример:

Запустив команду df, вы увидите результат, аналогичный показанному ниже:

Рис. 1: Вывод команды df

Рис. 1: Вывод команды df

 

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

 

С помощью команды vmstat

Команда vmstat также известна как статистика виртуальной памяти. Это утилита мониторинга производительности системы в Linux, которая отображает информацию о процессах, памяти, расписании процессора, диске и блочном вводе-выводе. Он показывает пользователям производительность системы в реальном времени в течение периода выборки. Если вы не укажете никаких параметров, команда vmstat по умолчанию покажет статистику с момента последней перезагрузки системы.

Синтаксис:

vmstat [options][delay [count]]

 

Задержка и количество являются двумя важными параметрами для команды vmstat. Они используются для непрерывного отображения производительности системы в реальном времени с заданным интервалом в течение определенного количества раз.

 

Пример:

Выполнение команды vmstat выдаст вам результат, аналогичный показанному ниже:

Рис. 2: Вывод команды vmstat

Рис. 2: Вывод команды vmstat

 

Это базовый вывод, который отображает общую статистику. Вы также можете указать параметры задержки и количества для непрерывного отображения статистики в реальном времени. Например, при запуске vmstat 5 3 будут отображены следующие 3 статистики в реальном времени, каждая с интервалом в 5 секунд.

Рис. 3: Вывод команды vmstat в реальном времени

Рис. 3: Вывод команды vmstat в реальном времени

 

Приведенные выше выходные данные разделены на четыре области. Наше основное внимание уделяется разделу ввода-вывода. В нем показаны две колонки:

 

Мы можем использовать эту информацию для анализа, когда данные интенсивно записываются или считываются. Затем мы можем использовать другую команду, например, iostat, чтобы увидеть, какой жесткий диск принимал нагрузку, и попытаться найти основную причину проблемы с дисковым вводом-выводом.

С помощью команды iostat

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

Синтаксис:

iostat [option] [interval] [count]

 

Аналогично тому, что мы видели с командой vmstat, параметры interval и count используются для отображения обновлений в реальном времени бесконечно или только для определенных значений.

 

Пример:

Выполнение команды iostat выдаст вам результат, аналогичный показанному ниже:

Рис. 4: Вывод команды iostat

Рис. 4: Вывод команды iostat

 

Отчеты о выводе по умолчанию отображают статистику процессора и статистику ввода-вывода устройства с момента последней перезагрузки системы. Из двух разделов нас больше интересует раздел “Устройство”. Он генерирует следующую информацию для всех разделов или устройств:

 

Исправление проблем с дисковым вводом-выводом

Приведенные выше примеры указывают на проблемы с производительностью диска в системе. Вы можете реализовать несколько программных и аппаратных исправлений, чтобы уменьшить проблемы с дисковым вводом-выводом и использованием пространства.

Исправления программного обеспечения

 

Аппаратные исправления

 

Заключение

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

В Linux есть различные команды, которые вы можете использовать, чтобы сузить круг причин проблем с дисковым вводом-выводом. Трех наиболее часто используемых команд, обсуждаемых здесь — df, iostat, и vmstat — достаточно, чтобы помочь вам найти первопричину. Хотя мы рассмотрели ряд полезных программных исправлений проблем дискового ввода-вывода, полезно помнить, что иногда обновления оборудования предлагают лучшее постоянное решение.

Exit mobile version