Изучение нескольких методов мониторинга использования ЦП на ядро ​​в Linux

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

Метод 1: использование команды top
Команда top в Linux предоставляет в режиме реального времени информацию о системных процессах, включая использование ЦП. Чтобы отобразить использование ЦП на каждое ядро, выполните следующую команду:

top -d 1 -n 1 | grep -i "Cpu(s)"

Метод 2: использование команды mpstat
Команда mpstat является частью пакета sysstat и предоставляет подробную статистику использования ЦП. Чтобы просмотреть использование ЦП на каждое ядро, используйте следующую команду:

mpstat -P ALL

Метод 3: анализ файла /proc/stat
Файл /proc/stat содержит системную статистику, включая сведения об использовании ЦП. Чтобы извлечь из этого файла информацию об использовании ЦП на каждое ядро, вы можете использовать следующий фрагмент кода Python:

import re
cpu_stats = {}
with open('/proc/stat', 'r') as file:
    for line in file:
        if line.startswith('cpu'):
            data = line.split()
            cpu = data[0]
            stats = [int(x) for x in data[1:]]
            cpu_stats[cpu] = stats
for cpu, stats in cpu_stats.items():
    total_time = sum(stats)
    idle_time = stats[3]
    usage = 100 - (idle_time * 100.0 / total_time)
    print(f"CPU {cpu} Usage: {usage}%")

Метод 4: использование команды sar
Команда sar — ​​еще один мощный инструмент для мониторинга системы. Чтобы получить данные об использовании ЦП на ядро, выполните следующую команду:

sar -P ALL

Метод 5. Использование библиотеки psutil
Библиотека psutil — это кроссплатформенная утилита для получения системной информации. Чтобы узнать загрузку ЦП на ядро, вы можете использовать следующий код Python:

import psutil
cpu_percent = psutil.cpu_percent(interval=1, percpu=True)
for i, usage in enumerate(cpu_percent):
    print(f"CPU {i} Usage: {usage}%")

В этой статье мы рассмотрели несколько методов мониторинга использования ЦП на каждое ядро ​​в Linux. Используя такие команды, как top, mpstat, sar, и анализируя системные файлы, такие как /proc/stat, мы можем собрать ценную информацию о том, как используется каждое ядро ​​ЦП. Кроме того, мы продемонстрировали, как можно использовать библиотеку psutil для удобного выполнения той же задачи. Понимая использование ЦП на каждое ядро, вы можете оптимизировать распределение ресурсов и более эффективно выявлять узкие места в производительности.