LINUX

Cómo cronometrar un comando en Linux

cómo usar el comando de tiempo de linux con ejemplos

Si quieres ser un buen administrador de Linux, debes saber time mando. Se utiliza para determinar cuánto tiempo tarda en ejecutarse un comando determinado.

Es útil para probar el rendimiento de sus scripts y comandos (es decir, ayuda a encontrar el tiempo de ejecución de los scripts de shell o el tiempo que tarda un comando en finalizar).

Cómo usar el comando de hora de Linux

Usar time comando, solo ejecuta time con el comando / programa que desea ejecutar como entrada. Por favor, consulte el siguiente ejemplo

$ 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

los real significa el tiempo del reloj de pared que el comando ‘ping’ tomó desde la ejecución hasta la terminación user y sys son el tiempo que toma ping el espacio de usuario y el espacio del kernel.

Cómo hacer que el comando de tiempo escriba su salida en un archivo

Para escribir la salida del comando de tiempo en un archivo en lugar de la pantalla de impresión, use el -o opción de línea de comando, que espera un nombre de archivo / ruta como entrada.

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

Ahora mostraremos la salida de ping en stdout, mientras que time la salida del comando se escribirá en el archivo de texto.

Nota: Usamos / usr / bin / time en lugar de time porque el comando de tiempo incorporado de shell no ofrece el -o opción.

Cómo agregar su salida a un archivo existente

Para agregar la salida del comando de tiempo a un archivo existente en lugar de sobrescribirlo, use el -a opción de línea de comando.

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

Cómo obtener una salida detallada del comando de tiempo de linux

Podemos usar el -v opción de línea de comando para producir una salida detallada.

$ 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

Cómo personalizar la salida del comando de tiempo

Hay una gran cantidad de opciones de formato como se muestra en la siguiente lista

C: nombre y argumentos de la línea de comandos utilizados
D – Tamaño medio del área de datos no compartidos del proceso en kilobytes
E – Tiempo transcurrido en formato de reloj
F – Número de errores de página
I – Número de entradas del sistema de archivos por el proceso
K: uso de memoria total promedio del proceso en kilobytes
M – Residente máximo establece el tamaño del proceso durante la vida útil en kilobytes
O – Número de salidas del sistema de archivos por el proceso
P: porcentaje de CPU que recibió el trabajo
R: número de errores de página menores o recuperables
S: número total de segundos de CPU utilizados por el sistema en modo kernel
U: número total de segundos de CPU utilizados por el modo de usuario
W: número de veces que se cambió el proceso de la memoria principal
X – Cantidad promedio de texto compartido en el proceso
Z: tamaño de página del sistema en kilobytes
c – Número de veces que se cambió de contexto el proceso
e – Tiempo real transcurrido utilizado por el proceso en segundos
k – Número de señales enviadas al proceso
p – Tamaño de pila promedio no compartido del proceso en kilobytes
r – Número de mensajes de socket recibidos por el proceso
s: número de mensajes de socket enviados por el proceso
t – Tamaño medio del conjunto residente del proceso en kilobytes
w: número de veces que el proceso se cambió de contexto de forma voluntaria
x – Estado de salida del comando

Podemos usar los modificadores de formato de la siguiente manera:

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

El resultado del comando anterior sería algo como esto:

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

Si queremos agregar una nueva línea como parte de la cadena de formato, use el carácter de nueva línea de la siguiente manera:

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

Versiones del comando Time de Linux

Hay tres versiones de comandos, Bash, Zsh y comandos de tiempo Gnu. Podemos usar el type comando para determinar si el tiempo es una palabra clave binaria o incorporada.

$ type time
  output
  # Bash
  time is a shell keyword

  # Zsh
  time is a reserved word

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

Escriba sus sugerencias o comentarios en el comando de tiempo y para obtener más información, utilice páginas del hombre de tiempo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar