В этом разделе представлены функции определения количества ядер сервера и уровня загрузки системы (load average).
os.getloadavg()
- определение загрузки системы (load average),os.cpu_count()
- количество логических процессоров в системе,os.process_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.process_cpu_count()
:Функция os.cpu_count()
получает количество логических процессоров, используемых вызывающим потоком текущего процесса. Возвращает None
, если не определено. Количество логических процессоров может быть меньше, чем cpu_count()
, в зависимости от привязки к процессору.
Функция cpu_count() может быть использована для получения количества логических процессоров в системе.
Если задан параметр командной строки -X cpu_count
или установлен параметр PYTHON_CPU_COUNT
, то os.process_cpu_count()
возвращает переопределенное значение n
.
Смотрите также функцию os.sched_getaffinity()
.
Добавлена в версии 3.13.
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