В этом разделе представлены функции определения количества ядер сервера и уровня загрузки системы (load average).
os.getloadavg()
- определение загрузки системы (load average),os.cpu_count()
- количество процессоров в системе,os.sched_getaffinity()
- множество/набор процессоров в системе,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