nr_running() - это функция, которая возвращает текущую сумму выполняемых процессов для всех онлайн-процессоров. Я не уверен, что вы подразумеваете под максимальным допустимым? Если один процессор работает на процессоре, теоретически все остальные процессы могут находиться в состоянии runnable
. В этом нет предела. (Тем не менее, существует ограничение на максимальное количество процессов в системе, но это было 512 в более старых ядрах linux. Но, безусловно, намного больше в последних версиях)
Если вам интересно узнать о загрузке процессора, я бы предлагаем Вам пройти this article, а также загружать вычисления функций внутри ядра, такие как calc_load() и другие в sched.c
Processor Queue Run можно исследовать с помощью команд, как здесь
How to find the processor queue length in linux
также узнать больше о runqueues здесь
http://www.ibm.com/developerworks/linux/library/l-scheduler/
Надежда это дает вам фору в оценке загрузки процессора.
«Загрузка процессора зависит от очереди процессора», ну, вроде. Предполагая, что «очередь процессора» относится к набору готовых потоков, которые не выполняются, общая загрузка ЦП равна 100%, если количество очередей больше 0. Обратите внимание, что готовые потоки обычно не называются «ожидающими», хотя они ждут CPU. «Ожидание» обычно понимается как «не управляемый», т. Е. ожидая ресурса без ЦП, такого как IO или объект синхронизации. –
О! Извините за ошибку typo. Я действительно хочу знать максимально допустимые «запущенные» процессы в один момент. Можно ли найти? – bobby
Простой способ попробовать. Создавайте петлевые потоки с низким приоритетом, пока что-то не сломается (сохраните вашу работу :). –