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
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