GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la unidad de tiempo que usa strace cuando muestra el tiempo dedicado a las llamadas al sistema?

Del código fuente:

if (Tflag) {
    ts_sub(ts, ts, &tcp->etime);
    tprintf(" <%ld.%06ld>",
        (long) ts->tv_sec, (long) ts->tv_nsec / 1000);
}

Esto significa que el tiempo se muestra en segundos, con microsegundos (calculados a partir del valor de nanosegundos) después del punto decimal.


Si corres

strace -T  sleep 2

verás

nanosleep({tv_sec=2, tv_nsec=0}, NULL)  = 0 <2.000230>

por lo que parece que el tiempo empleado es en segundos.


Si ejecuta el comando strace usando la "bandera -c" le mostrará una tabla y el tiempo se informa en segundos :

strace -c -p 3569 # 3569 is PID
strace: Process 3569 attached
^Cstrace: Process 3569 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
99.73    0.016000           8      1971           poll
0.16    0.000025           0       509        75 futex
0.06    0.000010           0      1985      1966 recvmsg
0.06    0.000009           0      2336           mprotect
0.00    0.000000           0       478           read
0.00    0.000000           0        13           write
0.00    0.000000           0        29           mmap
0.00    0.000000           0         9           munmap
0.00    0.000000           0        18           writev
0.00    0.000000           0       351           madvise
0.00    0.000000           0         1           restart_syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.016044                  7700      2041 total

del hombre de strace

-c

Cuente el tiempo, las llamadas y los errores de cada llamada al sistema e informe un resumen al salir del programa. En Linux, esto intenta mostrar el tiempo del sistema (el tiempo de la CPU dedicado a ejecutarse en el kernel) independientemente del tiempo del reloj de pared. Si se usa -c con -f o -F (abajo), solo se mantienen los totales agregados para todos los procesos rastreados.


Linux
  1. Linux:¿qué sistemas de archivos en Linux almacenan el tiempo de creación?

  2. ¿Qué sucede cuando ejecuto el comando Cat /proc/cpuinfo?

  3. ¿Qué sucede exactamente cuando ejecuto un archivo en el Shell?

  4. Linux:¿cómo medir el tiempo cuando llega un paquete?

  5. Cómo saber cuándo se creó el Spfile en un servidor Linux

¿Cuándo fue la última vez que usó Windows?

Bash-insulter:un script que insulta al usuario cuando escribe un comando incorrecto

¿Qué sistemas de archivos en Linux almacenan la hora de creación?

mount -t TYPE / - ¿cómo saber qué podría ser el TIPO?

¿Qué sucede cuando otro proceso modifica un archivo que está paginado al 100 % en la memoria caché de la página?

¿Qué significan exactamente los colores en las barras de estado htop?