Команда Linux mpstat
Полный справочник команд Linux
1. Обзор команды mpstat
mpstat (Multi-Processor Statistics) — это инструмент мониторинга производительности в системах Linux, входящий в набор инструментов sysstat. Он в основном используется для мониторинга загрузки ЦП и может отображать подробную статистику по каждому ядру ЦП.
1.1 Основные функции
- Отображение подробной статистики использования ЦП
- Мониторинг производительности одного ядра ЦП или всех ядер
- Предоставление доли времени ЦП в пользовательском режиме, режиме ядра, режиме простоя и других состояниях
- Поддержка интервальной выборки и многократной выборки
1.2 Сценарии применения
- Настройка производительности системы
- Анализ узких мест CPU
- Проверки балансировки нагрузки многоядерного CPU
- Мониторинг системы и устранение неполадок
2. Установка и основы использования
2.1 Способы установки
В большинстве дистрибутивов Linux его можно установить через менеджер пакетов:
# Ubuntu/Debian sudo apt install sysstat # CentOS/RHEL sudo yum install sysstat # Arch Linux sudo pacman -S sysstat
2.2 Базовый формат команды
mpstat [选项] [间隔时间] [采样次数]
Простой пример
Пример
mpstat
# Сбор данных каждые 2 секунды, всего 5 замеров
mpstat 2 5
3. Пояснение параметров команды
| Опция | Описание |
|---|---|
| -P {ALL|CPU number} | Укажите, какие ядра CPU отображать (ALL означает все ядра) |
| -u | Отобразить использование CPU (опция по умолчанию) |
| -I {SUM|CPU|SCPU|ALL} | Отобразить статистику прерываний |
| -V | Показать информацию о версии |
| -o JSON | Выводить результаты в формате JSON |
3.1 Общие комбинации параметров
Пример
mpstat -P ALL 1
# Отслеживать только первое ядро CPU (CPU0)
mpstat -P 0 1 5
4. Анализ результатов вывода
Executempstat -P ALL 1типичный вывод:
Linux 5.4.0-91-generic (hostname) 03/15/2023 _x86_64_ (4 CPU) 10:30:45 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 10:30:46 AM all 5.25 0.00 1.25 0.25 0.00 0.25 0.00 0.00 0.00 93.00 10:30:46 AM 0 6.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 93.00 10:30:46 AM 1 4.00 0.00 1.00 1.00 0.00 1.00 0.00 0.00 0.00 93.00 10:30:46 AM 2 6.00 0.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 92.00 10:30:46 AM 3 5.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 94.00
4.1 Значение каждого поля
| Поле | Описание |
|---|---|
| %usr | Процент времени, затраченного на выполнение программ в пользовательском режиме |
| %nice | Процент времени, затрачиваемого на выполнение низкоприоритетных программ пользовательского режима |
| %sys | Процент времени, затрачиваемого на выполнение программ в режиме ядра |
| %iowait | Процент времени, в течение которого CPU ожидает операций ввода-вывода |
| %irq | Процент времени, затрачиваемого на обработку аппаратных прерываний |
| %soft | Процент времени, затрачиваемого на обработку программных прерываний |
| %steal | Процент времени, в течение которого виртуальный CPU ожидает реальный CPU |
| %guest | Процент времени, затраченного на выполнение виртуальных процессоров |
| %gnice | Процент времени, затраченного на выполнение низкоприоритетных гостевых систем |
| %idle | Процент времени простоя CPU |
5. Практические примеры применения
5.1 Мониторинг использования CPU
Пример
mpstat -P ALL 2 5
5.2 Выявление узких мест CPU
Ключевые направления:
- %usr слишком высок: программы в пользовательском режиме потребляют большое количество CPU
- %sys слишком высок: частые системные вызовы
- %iowait слишком высок: возможно, есть узкое место ввода-вывода
5.3 Создание отчётов о производительности
Пример
mpstat -P ALL 1 60 > cpu_stats.log
6. Часто задаваемые вопросы
6.1 В чём разница между командами mpstat и top?
top: Отображает общее состояние системы в реальном времениmpstat: Фокусируется на статистике процессора, предоставляя более детальные данные по каждому ядру
6.2 Что означает очень низкий %idle?
Это означает, что процессор очень занят; чтобы сделать вывод, нужно сопоставить другие метрики:
- Если %usr высок: приложения потребляют много ресурсов процессора
- Если %sys высок: слишком много системных вызовов
- Если %iowait высок: I/O становится узким местом
6.3 Как отслеживать конкретное ядро CPU?
Пример
mpstat -P 2 1
7. Итоги
mpstat — важный инструмент для мониторинга производительности в системах Linux, особенно подходящий для анализа использования многоядерных CPU. После изучения этой статьи вы сможете:
- Понимать основные принципы и сценарии использования mpstat
- Освоить распространённые параметры команды mpstat
- Правильно интерпретировать результаты вывода mpstat
- Применять mpstat для анализа производительности в реальной работе
Рекомендуется сочетать его с другими инструментами, такими какvmstat、iostatчтобы получить более всесторонний анализ проблем производительности системы.