comando top su processore multi core


46

Sto usando il processore quad IMX6 freescale. Voglio sapere se il topcomando elenca l'utilizzo della CPU di tutti e 4 i core o di un singolo core. Vedo che l'utilizzo della CPU di un'applicazione è lo stesso con 4 core e con un singolo core. Immaginavo che l'utilizzo della CPU da parte dell'applicazione aumenterà su un singolo core e diminuirà su 4 core ma non è cambiato.


5
prova a premere 1 mentre top è in esecuzione
Dani_l

Potresti per favore elaborare. Come in quello che succede se premo 1. Perché sto ottenendo questo risultato incoerente da 2 giorni.
user3818847

1
Quale applicazione è quella? Perché pensi che la tua applicazione dovrebbe usare più core se disponibile? Esistono molte applicazioni che funzionano su una singola CPU / core e per le quali nessuno si è preso la briga di impiegare il tempo per metterle in parallelo.
Anthon,

2
no. se più core, si accumulano oltre il 100%. 4 core possono raggiungere l'800% con hyperthreading su ciascun core
Dani_l

1
Mi piace usare htopper questo.
Richard,

Risposte:


67

Non sono del tutto sicuro di ciò che stai chiedendo qui. Sì, topmostra l'utilizzo della CPU come percentuale di una singola CPU per impostazione predefinita. Ecco perché puoi avere percentuali> 100. Su un sistema con 4 core, puoi vedere fino al 400% di utilizzo della CPU.

Puoi modificare questo comportamento premendo I(ovvero Shift+ ie attiva "modalità Irix") mentre topè in esecuzione. Ciò farà sì che mostri il pecentage della potenza disponibile della CPU utilizzata. Come spiegato in man top:

    1. %CPU  --  CPU Usage
       The task's share of the elapsed CPU time since the last screen
       update, expressed as a percentage of total  CPU  time.   In  a
       true  SMP environment, if 'Irix mode' is Off, top will operate
       in 'Solaris mode' where a task's cpu usage will be divided  by
       the  total  number  of  CPUs.  You toggle 'Irix/Solaris' modes
       with the 'I' interactive command.

In alternativa, è possibile premere 1per visualizzare una ripartizione dell'utilizzo della CPU per CPU:

top - 13:12:58 up 21:11, 17 users,  load average: 0.69, 0.50, 0.43
Tasks: 248 total,   3 running, 244 sleeping,   0 stopped,   1 zombie
%Cpu0  : 33.3 us, 33.3 sy,  0.0 ni, 33.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  : 16.7 us,  0.0 sy,  0.0 ni, 83.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  : 60.0 us,  0.0 sy,  0.0 ni, 40.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8186416 total,  6267232 used,  1919184 free,   298832 buffers
KiB Swap:  8191996 total,        0 used,  8191996 free,  2833308 cached

1
con hyperthread credo che tu possa vedere fino all'800% come / proc / cpuinfo mostrerà ogni thread come una cpu
Dani_l

@Dani_l sì, se il "core" è fisico o virtuale è irrilevante, viene trattato come una "CPU" da top. L'output che visualizzo proviene dal mio laptop che ha una singola CPU fisica con due core, ognuno dei quali ha un secondo core logico. Il risultato è che topvede 4 core.
terdon

Ci scusiamo per il nitpicking, nel mio dayjob dobbiamo distinguere tra socket, core e thread quando prenoto le risorse. Immagino che l'abitudine si sia bloccata.
Dani_l,

9

fai clic su "1" mentre top è in esecuzione


5
Questa risposta è nei commenti da anni ormai ... per favore aggiungi qualcosa di nuovo.
andato il

0

Se desideri aprire topimmediatamente visualizzando CPU separate senza dover premere 1, puoi utilizzare l' -1opzione.

per esempio:

top -1

...
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  : 44.7 us, 55.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  : 46.7 us, 53.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
...     
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.