LINUX

Come cronometrare un comando in Linux

come utilizzare il comando linux time con esempi

Se vuoi essere un buon amministratore di Linux, dovresti saperlo time comando. Viene utilizzato per determinare quanto tempo impiega un particolare comando per essere eseguito.

È utile per testare le prestazioni dei tuoi script e comandi (cioè ti aiuta a trovare il tempo di esecuzione per gli script di shell o il tempo necessario per completare un comando).

Come usare il comando time di Linux

Uso time comando, basta eseguire time con il comando/programma che vuoi eseguire come input. Si prega di controllare l’esempio qui sotto

$ time ping linoxide.com
output
PING linoxide.com (104.27.115.15) 56(84) bytes of data.
64 bytes from 104.27.115.15 (104.27.115.15): icmp_seq=1 ttl=58 time=1.77 ms
64 bytes from 104.27.115.15 (104.27.115.15): icmp_seq=2 ttl=58 time=2.12 ms
64 bytes from 104.27.115.15 (104.27.115.15): icmp_seq=3 ttl=58 time=1.65 ms

--- linoxide.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 10016ms
rtt min/avg/max/mdev = 1.118/1.476/2.124/0.362 ms

real    0m10.536s
user    0m0.002s
sys     0m0.007s

Il real denota il tempo dell’orologio da parete impiegato dal comando “ping” dall’esecuzione al completamento, user e sys sono il tempo necessario ping spazio utente e spazio kernel.

Come eseguire il comando time scrive il suo output in un file

Per scrivere l’output del comando time in un file anziché nella schermata di stampa, utilizzare -o opzione della riga di comando, che prevede un nome file/percorso come input.

$ /usr/bin/time -o /home/smart/time-output.txt ping linoxide.com

Ora mostreremo il risultato del ping su stdout, while time l’output del comando verrà scritto nel file di testo.

Nota: Ho usato /usr/bin/time invece di time perché il comando time integrato della shell no -o opzione.

Come aggiungere l’output a un file esistente

Per aggiungere l’output del comando time a un file esistente invece di sovrascriverlo, utilizzare -a opzione della riga di comando.

$ /usr/bin/time -a /home/smart/time-output.txt ping linoxide.com

Come ottenere un output dettagliato del comando linux time

Possiamo usare -v opzione della riga di comando per produrre risultati dettagliati.

$ time -v ping linoxide.com
    output
    Command being timed: "ping linoxide.com"
    User time (seconds): 0.00
    System time (seconds): 0.00
    Percent of CPU this job got: 0%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:11.77
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 3064
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 158
    Voluntary context switches: 14
    Involuntary context switches: 0
    Swaps: 0
    File system inputs: 0
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

Come personalizzare l’output del comando orario

Esistono numerose opzioni di formattazione, come mostrato nell’elenco seguente

C – Il nome e gli argomenti della riga di comando utilizzati
D – La dimensione media dell’area dati non condivisa del processo, in kilobyte
E – Tempo trascorso in formato orologio
F – Numero di page fault
I – Numero di voci del file system da parte del processo
K – Utilizzo medio totale della memoria del processo in kilobyte
M – Residente massimo imposta la dimensione della durata del processo in kilobyte
O – Numero di uscite del file system del processo
P – Percentuale di CPU ricevuta dal lavoro
R – Il numero di errori di pagina minori o recuperabili
S – Numero totale di secondi di CPU utilizzati dal sistema in modalità kernel
U – Numero totale di secondi di CPU utilizzati dalla modalità utente
W – Numero di volte in cui il processo è stato scambiato dalla memoria principale
X – Quantità media di testo condiviso nel processo
Z – dimensione della pagina di sistema in kilobyte
c – Numero di volte in cui il processo ha subito un cambio di contesto
e – Tempo effettivo trascorso utilizzato dal processo in secondi
k – Numero di segnali inviati al processo
p – La dimensione media dello stack non condiviso del processo in kilobyte
r – Numero di messaggi socket ricevuti dal processo
s – Numero di messaggi socket inviati dal processo
t – La dimensione media del set residente del processo in kilobyte
w – Il numero di volte in cui il processo è stato volontariamente cambiato di contesto
x – Stato di uscita del comando

Possiamo usare i cambi di formato come segue:

$ time -f "Elapsed Time = %E, Inputs %I, Outputs %O"

L’output per il comando precedente sarebbe qualcosa del genere:

Elapsed Time = 0:01:00, Inputs 2, Outputs 1

Se vogliamo aggiungere una nuova riga come parte della stringa di formato, utilizzare il carattere di nuova riga come segue:

$ time -f "Elapsed Time = %E n Inputs %I n Outputs %O"

Versioni di Linux Time Command

Esistono versioni di tre comandi, Bash, Zsh e Gnu time command. Possiamo usare type comando per determinare se time è una parola chiave binaria o incorporata.

$ type time
  output
  # Bash
  time is a shell keyword

  # Zsh
  time is a reserved word

  # GNU time (sh)
  time is /usr/bin/time

Si prega di scrivere i propri suggerimenti o commenti al comando orario e per ulteriori informazioni utilizzare pagine del manuale del tempo.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close