Quali sono in particolare i tempi di clock delle pareti, cpu-time dell’utente e cpu-time di sistema in UNIX?

Posso fare un’ipotesi sulla base dei nomi, ma quali sono in particolare il tempo di clock del muro, il tempo della CPU dell’utente e il cpu-time del sistema in UNIX?

Tempo di CPU utente è la quantità di tempo impiegato per eseguire codice utente mentre kernel-cpu volta la quantità di tempo trascorso nel kernel a causa della necessità di operazioni con privilegi (come da IO a disco)?

In che unità di tempo è questa misura.

E il tempo di wall-clock è davvero il numero di secondi trascorsi dal processo sulla CPU o il nome è fuorviante?

L’ora dell’orologio a muro è l’ora in cui un orologio sul muro (o un cronometro in mano) misurerebbe come trascorso tra l’inizio del processo e “adesso”.

Il tempo CPU-utente e il tempo CPU-sistema sono più o meno come hai detto tu: la quantità di tempo speso nel codice utente e la quantità di tempo trascorso nel codice del kernel.

Le unità sono secondi (e secondi, che potrebbero essere microsecondi o nanosecondi).

L’ora di wall-clock non è il numero di secondi trascorsi dal processo sulla CPU; è il tempo trascorso, compreso il tempo trascorso in attesa del suo turno sulla CPU (mentre altri processi possono essere eseguiti).

Ora dell’orologio da parete: tempo trascorso in base all’orologio interno del computer, che dovrebbe corrispondere al tempo nel mondo esterno. Questo non ha nulla a che fare con l’utilizzo della CPU; è dato per riferimento.

Tempo della CPU utente e ora di sistema: esattamente ciò che pensi. Le chiamate di sistema, che includono chiamate I / O come read , write , ecc., Vengono eseguite saltando nel codice del kernel ed eseguendole.

Se il tempo dell’orologio a muro tempo CPU, stai aspettando disco, rete o altri dispositivi.

Tutti sono misurati in secondi, secondo il SI .

L’ora dell’orologio da parete è esattamente ciò che dice, il tempo trascorso misurato dall’orologio sulla tua parete (o dall’orologio da polso)

Il tempo di CPU dell’utente è il tempo trascorso in “user land”, ovvero il tempo impiegato per i processi non del kernel

Il tempo di CPU del sistema è il tempo trascorso nel kernel, di solito il tempo impiegato per la manutenzione delle chiamate di sistema.

 time [WHAT-EVER-COMMAND] 

 real 7m2.444s user 76m14.607s sys 2m29.432s $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 24 

reale o wall-clock

7m2.444 reali

Su un sistema con 24 processori core, questo cmd / processo impiegava più di 7 minuti per essere completato. Ciò utilizzando il parallelismo più ansible con tutti i nuclei dati.

utente

utente 76m14.607s

Il cmd / processo ha utilizzato questa quantità di tempo CPU. In altre parole, sulla macchina con CPU single core, il reale e l’utente saranno quasi uguali, quindi lo stesso comando impiegherà circa 76 minuti per essere completato.

SYS

sys 2m29.432s

Questo è il tempo impiegato dal kernel per eseguire tutte le operazioni di base / di sistema per eseguire questo cmd, incluso il cambio di contesto, l’allocazione delle risorse, ecc.

Nota: l’esempio presuppone che il comando utilizzi parallelismo / thread.

Pagina man dettagliata: https://linux.die.net/man/1/time