Linux: команда для определения количества ядер, на которых запущен процесс в любом случае

7525
Ashish singhi

Какая команда определяет количество ядер, на которых работает процесс в любом случае?

-Спасибо

1

1 ответ на вопрос

1
Deven

Top command can provide information on individual threads of a process using the following command

top -H -p <pid> 

To find the last core on which the thread was run try press f, than press j to enable the CPU core column.

Output will be like

top - 11:50:35 up 332 days, 16:31, 2 users, load average: 1.39, 1.45, 1.31 Tasks: 7 total, 1 running, 6 sleeping, 0 stopped, 0 zombie Cpu(s): 2.8%us, 1.7%sy, 0.0%ni, 95.5%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 65980588k total, 24549232k used, 41431356k free, 30268k buffers Swap: 135170856k total, 23016712k used, 112154144k free, 11289596k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ P COMMAND 10721 tom 25 0 326m 285m 3536 R 100.0 0.4 182:13.73 22 kproxy 10722 tom 17 0 326m 285m 3536 S 0.0 0.4 0:00.00 0 kproxy 10723 tom 15 0 326m 285m 3536 S 0.0 0.4 0:00.15 7 kproxy 10724 tom 15 0 326m 285m 3536 S 0.0 0.4 0:00.00 1 kproxy 10722 tom 17 0 326m 285m 3536 S 0.0 0.4 0:00.00 0 kproxy 10723 tom 15 0 326m 285m 3536 S 0.0 0.4 0:00.15 7 kproxy 10724 tom 15 0 326m 285m 3536 S 0.0 0.4 0:00.00 1 kproxy 

Numbers below the P column is the core that was last used by the thread. Value R below the S column means that thread is running.

На самом деле я хотел максимальное количество ядер, на которых может выполняться процесс, а не число ядер, на которых процесс был запущен в последний раз. Ashish singhi 10 лет назад 0
Я получил решение для этого. Мы можем выполнить следующую команду, чтобы узнать общее количество ядер, на которых запущен процесс в этом экземпляре. "** ps -eL -o pid, lwp, cpuid | grep| awk '' | сортировать -u | wc -l ** " Ashish singhi 10 лет назад 3
@ Ashish Я попробовал "ps -eL -o pid, lwp, cpuid | grep | awk '' "и обнаружил, что вы получите идентификатор процессора, на котором запущен или последний поток выполнялся. Выполняя сортировку -u, вы удаляете дубликаты, чтобы получить уникальное количество ядер, на которых выполнялись потоки. или последний запущенный. Многие из этих потоков могут находиться в спящем режиме, когда вы получаете выходные данные. Ваши результаты сильно зависят от планировщика и на другом сервере или в другое время на одном и том же сервере вы можете получить разные результаты Deven 10 лет назад 0
Вы имеете в виду, что эта команда не является доверенной, чтобы узнать количество ядер, на которых выполняется процесс в любой момент времени? Ashish singhi 10 лет назад 0
Для каких целей вам нужно количество ядер, используемых процессом? Deven 10 лет назад 0
Чтобы вычислить процессор, используемый процессом (в процентах) в экземпляре. Ashish singhi 10 лет назад 0
Загрузка ЦП (например, сверху) является более стабильным показателем, который, я думаю, вам следует использовать. Распределение потоков по ядрам - это решение планировщика процессов в ОС. Существует множество факторов, которые могут изменить распределение, например, количество ядер на процессор, архитектура NUMA и т. Д. На 8-ядерном компьютере с 2 процессорами или на 12-ядерном компьютере с 2 процессорами вы можете получить очень различное распределение потоков по ядрам для одного и того же Процесс и сценарий. Дело в том, что существует много факторов, и этот показатель количества ядер, на которых запущены потоки и последний запущен, не является стабильным показателем. Deven 10 лет назад 0

Похожие вопросы