•
Resumen de llamadas al sistema con strace
Mediante la herramienta strace podemos seguir las llamadas al sistema y las señales recibidas de los procesos. En alguna ocasión nos puede interesar ver el conjunto en lugar de las llamadas individuales para hacernos una idea del conjunto y no de una ejecución concreta.
Para seguir un determinado proceso podemos añadir la opción -p al comando strace, para hacerlo a un conjunto de procesos podemos combinar pgrep con sed:
# pgrep httpd | sed 's/^/-p /g' -p 13653 -p 13655 -p 13656 (...)
Para obtener el resumen de las llamadas al sistema podemos usar la opción -c:
# strace -c -fF $(pgrep httpd | sed 's/^/-p /g') Process 12761 attached (waiting for parent) Process 12761 resumed (parent 21274 ready) (...) Process 12775 detached Process 12776 detached % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 13.81 0.025492 3 7632 911 read 12.73 0.023495 1 20110 414 stat 12.23 0.022587 1 16920 3710 access 9.31 0.017186 2 8272 poll 6.50 0.012003 3 4250 13 sendto 6.21 0.011471 1 17182 fstat 5.30 0.009784 326 30 clone 4.77 0.008809 1 6371 356 open 3.28 0.006058 1 5777 munmap 2.93 0.005415 2 2574 write 2.59 0.004790 1 6681 close 2.58 0.004772 1 4817 1243 lstat 2.50 0.004617 1 5795 mmap 2.50 0.004613 1 4543 recvfrom 2.19 0.004049 4 1152 1 writev 1.79 0.003306 2 1758 sched_yield 1.37 0.002527 5 540 brk 0.88 0.001617 5 359 7 shutdown 0.71 0.001309 7 197 epoll_wait 0.70 0.001298 5 275 setitimer 0.67 0.001238 3 377 socket 0.65 0.001203 3 394 semop 0.64 0.001178 2 539 times 0.51 0.000939 3 314 314 connect 0.46 0.000857 4 197 accept 0.44 0.000809 0 2783 fcntl 0.37 0.000676 1 687 getcwd 0.35 0.000639 0 1418 rt_sigaction 0.27 0.000490 1 342 getsockname 0.16 0.000296 42 7 wait4 0.15 0.000285 0 1024 setsockopt 0.13 0.000245 8 30 setgroups 0.12 0.000226 2 94 rt_sigprocmask 0.10 0.000182 5 38 lseek 0.05 0.000099 2 60 epoll_ctl 0.03 0.000064 1 60 geteuid 0.00 0.000000 0 8 2 select 0.00 0.000000 0 3 mremap 0.00 0.000000 0 7 sendfile 0.00 0.000000 0 150 recvmsg 0.00 0.000000 0 50 bind 0.00 0.000000 0 150 getsockopt 0.00 0.000000 0 182 chdir 0.00 0.000000 0 30 setuid 0.00 0.000000 0 30 setgid 0.00 0.000000 0 2 getpgrp 0.00 0.000000 0 13 futex 0.00 0.000000 0 30 epoll_create ------ ----------- ----------- --------- --------- ---------------- 100.00 0.184624 124254 6971 total
Por defecto se ordenan por tiempo (time), pero lo podemos ordenar por otros criterios con la opción -S como llamadas (calls), nombre (name) o simplemente nada (nothing), según aparecen en los procesos aparecen en la lista:
# strace -c -S calls -fF $(pgrep httpd | sed 's/^/-p /g') (...) % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 12.65 0.025514 1 20845 455 stat 5.05 0.010180 1 18378 fstat 11.28 0.022766 1 17054 3862 access 12.34 0.024894 3 9654 poll 12.44 0.025098 3 8430 978 read 3.16 0.006383 1 7121 close 5.95 0.012009 2 6913 437 open 4.39 0.008854 1 6401 1343 lstat 2.45 0.004934 1 6289 mmap 2.51 0.005061 1 6237 munmap 2.52 0.005077 1 4767 recvfrom 5.52 0.011127 3 4300 8 sendto 4.22 0.008523 2 3675 write 0.89 0.001805 1 3191 fcntl 1.10 0.002229 2 1422 sched_yield 2.94 0.005933 4 1421 2 writev 0.65 0.001303 1 1405 rt_sigaction 1.40 0.002834 2 1164 setsockopt 0.16 0.000327 0 733 getcwd 0.28 0.000565 1 661 brk 0.61 0.001236 2 570 times 1.12 0.002264 5 489 socket 0.57 0.001153 3 420 semop 0.00 0.000000 0 417 getsockname 0.49 0.000998 3 379 379 connect 1.45 0.002922 8 371 8 shutdown 0.06 0.000128 0 290 setitimer 0.00 0.000000 0 258 recvmsg 0.39 0.000778 4 210 accept 0.99 0.001998 10 210 epoll_wait 0.00 0.000000 0 199 getsockopt 0.00 0.000000 0 196 chdir 0.00 0.000000 0 106 rt_sigprocmask 0.00 0.000000 0 86 bind 0.00 0.000000 0 20 futex 0.00 0.000000 0 17 mprotect 0.00 0.000000 0 16 sendfile 1.84 0.003705 285 13 wait4 0.00 0.000000 0 12 6 select 0.00 0.000000 0 9 lseek 0.08 0.000164 23 7 getpgrp 0.00 0.000000 0 5 uname 0.00 0.000000 0 4 execve 0.00 0.000000 0 4 arch_prctl 0.00 0.000000 0 3 pipe 0.00 0.000000 0 2 getpid 0.00 0.000000 0 2 fsync 0.00 0.000000 0 2 link 0.00 0.000000 0 2 getuid 0.00 0.000000 0 1 1 ioctl 0.00 0.000000 0 1 dup2 0.00 0.000000 0 1 nanosleep 0.00 0.000000 0 1 alarm 0.49 0.000981 981 1 clone 0.00 0.000000 0 1 vfork 0.00 0.000000 0 1 unlink 0.00 0.000000 0 1 umask 0.00 0.000000 0 1 getgid 0.00 0.000000 0 1 geteuid 0.00 0.000000 0 1 getegid 0.00 0.000000 0 1 getppid ------ ----------- ----------- --------- --------- ---------------- 100.00 0.201743 134392 7479 total
Relacionados
Imprimir
Deja un comentario: