5 команд Linux для быстрого обнаружения замедления системы
Если вы когда-либо сталкивались с замедлением работы системы в Linux, это может быть связано с аппаратным обеспечением. Вот пять команд, которые помогут вам найти проблему и быстро вернуться к работе.
Это редкий случай, когда мой рабочий стол Linux тормозит. Это не значит, что этого никогда не происходит, поскольку это было бы ложью. Чаще всего, когда происходит замедление работы системы, я обычно могу отследить его до конкретного приложения (часто виноват VirtualBox). Однако у меня возникали проблемы, вызванные узкими местами жесткого диска.
Давайте посмотрим, как можно отследить узкие места, связанные с оборудованием, с помощью нескольких команд.
1. йостат
Эта команда сообщает статистику ЦП и статистику ввода-вывода (ввода-вывода) как для устройств, так и для разделов. С помощью iostat вы можете отслеживать загрузку устройства, отслеживая время активности устройства в зависимости от средней скорости передачи данных. Эта команда генерирует отчеты, которые можно использовать, чтобы помочь вам настроить вашу систему для достижения оптимальной производительности. При использовании iostat есть три показателя, которые вы должны учитывать в качестве приоритета:
- %util — сколько времени диск был занят обработкой запросов. Если это число превышает 80%, велика вероятность, что вы имеете дело с узким местом.
- await — среднее время выполнения запроса ввода-вывода. Если значение велико, вы имеете дело с диском, который либо слишком медленный, либо имеет проблемы.
- svctm — среднее время обслуживания запросов ввода-вывода. Если значение велико, это означает, что диск отвечает слишком долго.
Следует иметь в виду, что iostat выводит список всех устройств (включая шлейфы). Устройства, которые вы хотите найти, скорее всего, относятся к типам nvme, sdX и zram (где X — буква).
Возможно, iostat не установлен в вашей системе по умолчанию. Если нет, вы можете установить приложение sysstat с помощью такой команды:
- Дистрибутивы на базе Ubuntu — sudo apt-get install sysstat -y
- Дистрибутив на основе Fedora — sudo dnf install sysstat -y
2. иотоп
Команда iotop аналогична iostat, но вместо создания статических отчетов она создает отчеты в режиме реального времени. Iotop аналогичен команде top ; разница в том, что top отображает статистику о программном обеспечении и сервисах, тогда как iotop отображает процессы и активность диска. Если вы заметили процесс, использующий чрезмерные системные ресурсы, вероятно, это ваша проблема.
Приложение iotop необходимо запускать с привилегиями sudo. При запуске вы увидите столбцы для TID, PRIO, пользователя, чтения с диска, записи на диск, SwapIn, приоритета ввода-вывода и команды. Три наиболее важных бита информации, которые необходимо проверить, — это чтение с диска, запись на диск и приоритет ввода-вывода. Если вы обнаружите какие-либо процессы с высоким значением чтения или записи, это ваша проблема. В то же время, если вы обнаружите что-то, использующее большое количество ресурсов ввода-вывода (приоритет ввода-вывода), вам нужно будет настроить приоритет этого процесса с помощью команды ionice (для установки или получения класса планирования ввода-вывода процесса и приоритет).
Чтобы установить iotop в дистрибутивах на базе Ubuntu или Fedora, необходимо использовать следующие команды:
sudo apt-get install iotop -y
sudo dnf install iotop -y
3. Дстат
Команда dstat — это еще один метод мониторинга использования системных ресурсов, особенно дискового ввода-вывода. Команда dstat почти похожа на комбинацию iotop и iostat: она сообщает столько же информации, что и iostat, но делает это в режиме реального времени, как iotop. Наиболее важными деталями, которые следует проверить, являются чтение/запись диска (если постоянно наблюдается высокая активность, это может быть вашей проблемой) и ожидание диска (сколько времени требуется для завершения отдельных операций ввода-вывода. Большое число указывает на узкое место).
Вы можете установить dstat в дистрибутивах Ubuntu или Fedora с помощью команд:
sudo apt-get install dstat -y
sudo dnf install dstat -y
Одна удобная маленькая хитрость — использовать ограничение на размер отчетов dstat. Например, если вам нужен только просмотр статистики процессора, введите команду:
dstat -c
Если вы хотите только просмотреть статистику диска, введите команду:
dstat -d
4. сар
Команда sar также устанавливается вместе с sysstat и собирает, сообщает и сохраняет информацию о активности системы. Команда sar немного сложнее, чем приведенные выше команды, поскольку вам нужно использовать параметры. Например, если вы хотите просмотреть три набора статистики процессора с интервалом в две секунды между опросами, команда будет такой:
sar -u 2 3
Приведенная выше команда распечатает три набора статистики процессора, а затем четвертый для среднего значения. Вывод включает в себя следующее:
- CPU — количество тестируемых ядер ЦП (по умолчанию — все).
- %User — процент времени, в течение которого приложение запускается на уровне пользователя.
- %Nice — процент времени, в течение которого приложение запускается на уровне пользователя с хорошим приоритетом.
- %system — процент времени, необходимый для выполнения процессов системного уровня.
- %iowait — процент времени, в течение которого процессор простаивает с ожидающим запросом дискового ввода-вывода.
- %steal — процент времени, в течение которого виртуальный процессор простаивал из-за того, что хост обслуживал другую виртуальную машину.
- %idle — процент времени, в течение которого процессор простаивает без ожидающего запроса ввода-вывода.
Если вы подозреваете, что какое-то конкретное ядро является проблемой, вы всегда можете проверить его по номеру, например:
sar -P 1 2 3
За опцией -P следует номер ядра, которое вы хотите протестировать.
5. смартктл
Если вы хотите проверить состояние ваших жестких дисков, вам следует использовать команду smartctl . В отчете smartclt есть две конкретные части информации, на которые следует обратить внимание:
- Reallocated_Sector_Ct — количество секторов, которые были перераспределены из-за ошибок. Если число велико, возможно, диск неисправен.
- Seek_Error_Rate — если значение велико, возможно, на диске возникли проблемы с поиском определенной информации, что может быть признаком повреждения.
И вот оно… пять команд, которые помогут вам найти узкие места в вашей системе Linux. Обязательно прочитайте больше об этих командах с помощью man (т. е. man smarctl, man sar, man dstat, man iotop и man iostat ). ).