K tomu může pomoci příkaz "top", který nemá CPU seskupený seznam vláken, ale spíše můžete vidět seznam vláken (pravděpodobně pro jeden proces) a na kterých jádrech CPU vlákna běží
top -H -p {PROC_ID}
poté stiskněte f pro přechod do výběru pole j pro povolení sloupce CPU core a Enter zobrazit.
Můžete také použít ps
, něco jako toto:
ps -mo pid,tid,%cpu,psr -p `pgrep BINARY-NAME`
Níže uvedená odpověď již není od roku 2014 přesná
Úkoly nespí v žádném konkrétním jádru. A plánovač nebude dopředu vědět, na kterém jádru poběží vlákno, protože to bude záviset na budoucím využití těchto jader.
Chcete-li získat požadované informace, podívejte se do /proc/
31466 (bc) S 31348 31466 31348 34819 31466 4202496 2557 0 0 0 5006 16 0 0 20 0 1 0 10196934 121827328 1091 18446744073709551615 4194304 4271839 140737264235072 140737264232056 217976807456 0 0 0 137912326 18446744071581662243 0 0 17 3 0 0 0 0 0
Momentálně neběží. Naposledy běžel na jádru 3.
31466 (bc) R 31348 31466 31348 34819 31466 4202496 2557 0 0 0 0 3818 12 0 0 20 0 1 0196934 12182737264400114020404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040940940950940909090404 007300702020409090904 004090909030. 0 0 0 0 0
Aktuálně běží na jádru 2.
Chcete-li zjistit, co znamenají ostatní pole, podívejte se na zdrojový kód linuxového jádra – konkrétně na do_task_stat
funkce v fs/proc/array.c
nebo Documentation/filesystems/stat.txt
.
Všimněte si, že všechny tyto informace mohou být v době, kdy je získáte, zastaralé. V určitém okamžiku mezi tím, kdy jste vytvořili open
, to byla pravda zavolejte na soubor v proc a když se toto volání vrátí.
Vlákna nejsou nutná k vázání jednoho konkrétního jádra (pokud jste ho nepřipnuli). Chcete-li tedy vidět nepřetržité přepínání jádra, můžete použít (upravená odpověď Dmitrije):
watch -tdn0.5 ps -mo pid,tid,%cpu,psr -p \`pgrep BINARY-NAME\`
Například:
watch -tdn0.5 ps -mo pid,tid,%cpu,psr -p \`pgrep firefox\`