GNU/Linux >> Linux Esercitazione >  >> Linux

Determinazione del particolare processore su cui è in esecuzione un processo

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.


Linux
  1. Costruire contenitori a mano:lo spazio dei nomi PID

  2. 4 modi per scoprire un core della CPU che esegue un particolare processo in Linux

  3. Quale processo ha Pid 0?

  4. Come ottenere l'ID del processo per terminare un processo nohup?

  5. Determina in quali gruppi si trova un processo in esecuzione?

Come modificare la priorità di un processo in Linux

Come eliminare l'esecuzione del processo Linux su una porta particolare

Come utilizzare il comando which in Linux

Esiste un comando in Linux per conoscere il numero del processore in cui viene caricato un processo?

Identificare quale MTA è in esecuzione

I file .pid sono affidabili per determinare se un processo è in esecuzione?