Сообщить об ошибке.

Функции getloadavg() и cpu_count() модуля os в Python

Определение количества ядер сервера и уровень загрузки системы (load average)

В этом разделе представлены функции определения количества ядер сервера и уровня загрузки системы (load average).

Содержание:


os.getloadavg():

Функция os.getloadavg() возвращает среднее количество процессов в системной очереди выполнения за последние 1, 5 и 15 минут или вызывает исключение OSError, если средняя загрузка была не определена.

Другими словами, в Unix системах выводит значение "load average".

Доступность: Unix.

os.cpu_count:

Функция os.cpu_count() возвращает количество ядер в системе. Если не определено, то возвращает None.

Это число не эквивалентно количеству ядер сервера, которые может использовать текущий процесс. Количество используемых ядер текущим процессом можно получить с помощью выражения len(os.sched_getaffinity(0))

os.sched_getaffinity(pid):

Функция os.sched_getaffinity() возвращает множество ядер процессора, на которые ограничен процесс с PID pid или текущий процесс, если он равен нулю.

Примеры определения количества процессоров и загрузки системы.

>>> import os
# определяем load average
>>> loadavg = os.getloadavg()
>>> loadavg
# (0.31, 0.44, 0.36)
>>> loadavg[0]
# 0.31

# определяем количество ядер в системе
>>> os.cpu_count()
# 6

# или
>>> os.sched_getaffinity(0)
# {0, 1, 2, 3, 4, 5}
>>> len(os.sched_getaffinity(0))
# 6