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


26

Esiste un comando in Linux per capire, dato un processo, quale processore è in esecuzione? Sono interessato a capire la CPU occupata e il tempo di inattività della CPU di quel processore.

Risposte:


32

È possibile utilizzare il pscomando per eseguire query e visualizzare il processore attivo. Ad esempio, potresti eseguire:

$ ps -aF
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0  5971  1764   1 Sep15 ?        00:00:01 /sbin/init
ubuntu   28903  2975  0  3826  1208   0 09:36 pts/0    00:00:00 ps -aF

La PSRcolonna mostra che initè in esecuzione sul processore 1 ed psè in esecuzione sul processore 0. Vedi la manpage per ps (1) per maggiori dettagli su come personalizzare i campi che vengono visualizzati.

È possibile configurare uno strumento grafico come htopvisualizzare l'attuale processore attivo. Inoltre, htopha un grafico di visualizzazione del carico per CPU, che potrebbe essere quello che stai cercando. Vedi, ad esempio, il seguente screenshot da http://htop.sourceforge.net/ .

screenshot di htop

Infine, è possibile utilizzare lo tasksetstrumento per forzare l'affinità con una determinata CPU.


Tenere presente che (a meno che non si sia utilizzato un set di attività per impostare l'affinità su una sola CPU), queste informazioni potrebbero essere obsolete prima della generazione del display, figuriamoci al momento della lettura.
Jamie Hanrahan,

26

Ci sono molti modi per scoprirlo. htop, in alto, ps.

htop

  • versione testata: 1.0.2
  • url: http://htop.sourceforge.net/

    1. Premi F2 per accedere alla finestra di configurazione
    2. seleziona Colonne nella colonna Impostazione
    3. vai Colonne disponibili
    4. aggiungi PROCESSOR htop selezionando il processore
    5. Controlla la colonna della CPU htop con colonna cpu

superiore

  • versione testata: procps 3.3.8
  • url: http://gitorious.org/procps

    1. Premi f per accedere alla finestra Gestione campi
    2. Seleziona P (Ultima CPU usata)

ecco un esempio con l'ultima colonna P

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   P 
 5626 yashi     20   0 1926276 545964  47596 R  12.6  3.4 151:10.81 gnome-sh+ 2 
 5347 root      20   0  384788  73600  55708 S   8.7  0.5  55:10.09 Xorg      1 
 8125 yashi     20   0  646240  30776  21928 S   4.3  0.2  23:06.20 gnome-sy+ 0 
 1785 yashi     20   0  581180  29288  15560 R   4.0  0.2   0:25.55 gnome-te+ 1

ps

PSR è il CODICE per visualizzare l'ID del processore. Puoi usare l'opzione di formattazione come ps -o pid,psro semplicementeps -eF

$ ps -eF|head
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0  3817   964   0 Aug14 ?        00:00:02 init [2]  
root         2     0  0     0     0   2 Aug14 ?        00:00:00 [kthreadd]
root         3     2  0     0     0   0 Aug14 ?        00:00:11 [ksoftirqd/0]
root         5     2  0     0     0   0 Aug14 ?        00:00:00 [kworker/0:0H]
root         7     2  0     0     0   0 Aug14 ?        00:00:00 [migration/0]
root         8     2  0     0     0   0 Aug14 ?        00:00:00 [rcu_bh]
root         9     2  0     0     0   3 Aug14 ?        00:00:39 [rcu_sched]
root        10     2  0     0     0   0 Aug14 ?        00:00:00 [watchdog/0]
root        11     2  0     0     0   1 Aug14 ?        00:00:00 [watchdog/1]

1

Cito solo il contenuto di man ps:

psr ti dirà il processore su cui il processo è in esecuzione o su cui è stato eseguito. pcpu ti dirà la percentuale di tempo della cpu consumata dal processo.

ps -eo pid, tid, class, rtprio, ni, pri, psr , pcpu , stat, wchan: 14, comm

ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm | tail
 9847  9847 TS       -   0  19   2  0.0 S    -              kworker/2:0
10061 10061 TS       -   0  19   2  0.6 Sl   futex_wait_que chrome
10208 10208 TS       -   0  19   3  0.0 S    -              kworker/3:3
10247 10247 TS       -   0  19   1  0.0 S    -              kworker/1:1
10381 10381 TS       -   0  19   1  4.6 Sl   futex_wait_que chrome
10452 10452 TS       -   0  19   0  0.0 S    -              kworker/0:1
10491 10491 TS       -   0  19   0  0.5 Sl   futex_wait_que chrome
10504 10504 TS       -   0  19   2  0.0 S    -              kworker/2:1
10505 10505 TS       -   0  19   0  0.0 R+   -              ps
10506 10506 TS       -   0  19   3  0.0 S+   pipe_wait      tail

Stile BSD:

ps axo stat, euid, ruid, tty, tpgid, sess, pgrp, ppid, pid, psr , pcpu , comm


Questo è un po 'criptico. Puoi espandere la tua risposta per approfondire di cosa si tratta e come utilizzarla per risolvere il problema? dalla recensione
fixer1234
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.