понедельник, 15 февраля 2016 г.

Низкоуровневая отладка процесса в Linux с помощью strace

Начал читать статью http://www.speedemy.com/troubleshooting-web-application-performance-issues/ и уже буря эмоций!

Новый ключ к пониманию работы приложения и производительности!

Например подключаюсь к php-fpm и стартую процесс

ps aux | grep php
www-data  1900  0.0  0.5 340476 32840 ?    S    февр.14   0:00 php-fpm: pool www                                                           
www-data  1901  0.0  0.6 340492 36104 ?    S    февр.14   0:00 php-fpm: pool www


sudo strace -p 1900 -tttT -s200

И вуаля!

recvfrom(9, "VALUE NotOwlnewPermissionsUser64"..., 8196, MSG_NOSIGNAL, NULL, NULL) = 531
sendto(9, "get NotOwlnewPermissionsUser6452"..., 44, MSG_NOSIGNAL, NULL, 0) = 44
recvfrom(9, "VALUE NotOwlnewPermissionsUser64"..., 8196, MSG_NOSIGNAL, NULL, NULL) = 531
sendto(9, "get NotOwlnewPermissionsUser6452"..., 44, MSG_NOSIGNAL, NULL, 0) = 44
recvfrom(9, "VALUE NotOwlnewPermissionsUser64"..., 8196, MSG_NOSIGNAL, NULL, NULL) = 531
sendto(9, "get NotOwlnewPermissionsUser6452"..., 44, MSG_NOSIGNAL, NULL, 0) = 44
recvfrom(9, "VALUE NotOwlnewPermissionsUser64"..., 8196, MSG_NOSIGNAL, NULL, NULL) = 531


recvfrom(5, "\1\5\0\1\0\0\0\0", 8, 0, NULL, NULL) = 8
close(5)                                = 0
munmap(0x7f5816a00000, 2097152)         = 0
setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
accept(0, ^CProcess 1900 detached
 <detached ...>

Все системные вызовы на ладони!

Комментариев нет:

Отправить комментарий