ps
può darti queste informazioni se chiedi il psr
colonna (o usa la colonna -F
flag che lo include).
Es:
$ 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
Oppure:
$ ps -o pid,psr,comm -p $$
PID PSR COMMAND
6415 0 bash
La mia shell era in esecuzione sulla CPU 2 quando ho eseguito il primo comando, sulla CPU 0 quando ho eseguito il secondo. Fai attenzione che i processi possono cambiare le CPU molto, molto rapidamente, quindi le informazioni che effettivamente vedi sono, essenzialmente, già obsolete.
Qualche informazione in più nelle risposte a questa domanda di Super User:
Linux:comando per conoscere il numero del processore in cui è caricato un processo?
Con il top
da procps
(generalmente l'impostazione predefinita sulle distribuzioni Linux al giorno d'oggi), in top
, premi f , vai a P = Last User CPU (SMP)
e premi Spazio per selezionare (puoi anche spostare il campo per esempio prima del COMMAND
campo con Destra tasto e poi spostati su e giù). q per tornare alla schermata principale (dove vedrai il tuo processo spostarsi da un processore all'altro a meno che tu non lo abbia configurato esplicitamente per rimanere con uno). Puoi premere W per salvarlo come predefinito.
Premi ? aiuto.
Il comando taskset
è quello che stai cercando:
set di attività:recupera o imposta l'affinità della CPU di un processo
Esempio
$ taskset -p 12345
pid 12345's current affinity mask: f
Una maschera di f
indica tutti i processori, 0x00000001
sarebbe solo il processore 0.
$ taskset -c -p 24389
pid 24389's current affinity list: 0-3
Mostra le cpu in formato elenco. Ho 4 core sul mio laptop in questo esempio.
Vedi la pagina man con maggiori dettagli.