使用strace追踪php-fpm的系统调用

查看每个系统函数调用耗时占比

ps -ef|grep php-fpm|awk '{print " -cp " $2 " -o /tmp/strace.log"}' | xargs strace 
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 18.99    0.010768           3      4160           poll
 18.79    0.010657           0     25688           read
 13.10    0.007432           0     16900        36 lstat
 11.09    0.006290           0     13002       244 access
  7.22    0.004092           1      3849         8 recvfrom
  6.57    0.003726           1      3842           sendto
  5.83    0.003308           0      7044        52 stat
  5.73    0.003252           0      6728           rt_sigprocmask
  2.45    0.001389           4       395           mlock
  2.35    0.001330           0      2731           getdents
  1.86    0.001055           1      1853           open
  1.76    0.001000          18        55           accept
  0.79    0.000450           0      2245           close
  0.60    0.000343           1       496           fstat
  0.47    0.000267           1       467           rt_sigaction
  0.41    0.000233           0      1219           lseek
  0.38    0.000213           1       351        12 socket
  0.36    0.000205           4        55           shutdown
  0.35    0.000200           2       129           write
  0.29    0.000166           1       215           brk
  0.19    0.000105           1       115           mmap
  0.16    0.000090           1       176           getsockopt
  0.14    0.000080           1       110           chdir
  0.11    0.000062           0       395           munlock
  0.00    0.000000           0       238           munmap
  0.00    0.000000           0        18           alarm
  0.00    0.000000           0       220           setitimer
  0.00    0.000000           0       168       168 connect
  0.00    0.000000           0       334           recvmsg
  0.00    0.000000           0       167           bind
  0.00    0.000000           0       251           getsockname
  0.00    0.000000           0        12         4 getpeername
  0.00    0.000000           0        91           setsockopt
  0.00    0.000000           0        80           uname
  0.00    0.000000           0       629           fcntl
  0.00    0.000000           0       116           getcwd
  0.00    0.000000           0       110           times
  0.00    0.000000           0         2           restart_syscall
  0.00    0.000000           0         8           epoll_wait
------ ----------- ----------- --------- --------- ----------------
100.00    0.056713                 94664       524 total

查看某个系统调用的实际执行

 ps -ef|grep php-fpm|awk '{print " -T -e access -p " $2 " -o /tmp/strace_access.log"}' | xargs strace

根据具体的执行结果,从代码或相关配置中去优化即可

发布了200 篇原创文章 · 获赞 26 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/why444216978/article/details/103369511