ps
vám tyto informace poskytne, pokud požádáte o psr
(nebo použijte -F
příznak, který jej obsahuje).
Příklad:
$ ps -F $$
UID PID PPID C SZ RSS PSR STIME TTY STAT TIME CMD
me 6415 6413 0 5210 2624 2 18:52 pts/0 SN 0:00 -su
Nebo:
$ ps -o pid,psr,comm -p $$
PID PSR COMMAND
6415 0 bash
Můj shell běžel na CPU 2, když jsem spustil první příkaz, na CPU 0, když jsem spustil druhý. Pozor, procesy mohou velmi, velmi rychle měnit CPU, takže informace, které skutečně vidíte, jsou v podstatě již zastaralé.
Některé další informace v odpovědích na tuto otázku superuživatele:
Linux:příkaz ke zjištění čísla procesoru, ve kterém je načten proces?
S top
od procps
(obecně výchozí v dnešních distribucích Linuxu), v top
, stiskněte f , přejděte na P = Last User CPU (SMP)
a stiskněte Mezerník pro výběr (můžete také pole přesunout například před COMMAND
pole s vpravo a poté pohyb nahoru a dolů). q se vraťte na hlavní obrazovku (kde uvidíte, jak se váš proces přesouvá z procesoru na procesor, pokud jste jej výslovně nenastavili tak, aby zůstal u jednoho). Můžete stisknout W uložit jako výchozí.
Stiskněte ? o pomoc.
Příkaz taskset
je to, co hledáte:
taskset – načtení nebo nastavení afinity CPU procesu
Příklad
$ taskset -p 12345
pid 12345's current affinity mask: f
Maska f
znamená všechny procesory, 0x00000001
by byl pouze procesor 0.
$ taskset -c -p 24389
pid 24389's current affinity list: 0-3
Zobrazuje CPU ve formátu seznamu. V tomto příkladu mám na svém notebooku 4 jádra.
Viz manuálová stránka obsahuje více podrobností.