Команда Linux mpstat

Linux 命令大全Полный справочник команд 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 [选项] [间隔时间] [采样次数]

Простой пример

Пример

# Отобразить текущую статистику для всех ядер CPU
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 Общие комбинации параметров

Пример

# Отслеживать все ядра CPU, обновлять раз в 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

Пример

# Мониторить все ядра CPU, обновлять каждые 2 секунды, отображать всего 5 раз
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?

Пример

# Отслеживать только ядро CPU 2
mpstat -P 2 1

7. Итоги

mpstat — важный инструмент для мониторинга производительности в системах Linux, особенно подходящий для анализа использования многоядерных CPU. После изучения этой статьи вы сможете:

  1. Понимать основные принципы и сценарии использования mpstat
  2. Освоить распространённые параметры команды mpstat
  3. Правильно интерпретировать результаты вывода mpstat
  4. Применять mpstat для анализа производительности в реальной работе

Рекомендуется сочетать его с другими инструментами, такими какvmstat、iostatчтобы получить более всесторонний анализ проблем производительности системы.

Linux 命令大全Полный справочник команд Linux

Другие расширения