关于最近我的blog经常没有响应的问题

最近,经常出现我的blog不能响应的问题,起初怀疑网络问题,因为我是部署在阿里云的。后来,忍无可忍,查了一下:

  1. 首先,浏览器中不能响应的时候,curl还是能正常访问的
  2. 其次,通过tcpdump抓包发现,确实是请求发送到了server,而server没有回应
  3. strace跟踪server端进程,发现大量进程在试图flock 一个文件,lsof查看,发现确实在试图lock我的session文件
  4. 肯定有一个进程lock住session文件后,在干别的耗时的事情,一直也没干完
  5. 继续strace打开session文件的每一个进程,必然会有一个文件打开了session文件,但是没有处于flock系统调用阶段,果然,是进程15822
  6. pstack 15822, 结果如下:

     
  7. 显然,该进程正在试图通过curl访问一个外部资源,应该是连接不上,lsof 查看部分结果如下:
  8. 一切不出所料,但是,至此,我根据上面信息还无法知道究竟是哪个逻辑要访问该资源
  9.  借助php源码中提供的 .gdbinit 通过zbacktrace来看,不过忙了一会儿,进程不在了,下次再说吧
  10. N 天后,相同问题再次出现,本次进程id: 826
  11. 直接 gdb -p 816 然后zbacktrace
    最后发现由于插件: /data1/www/htdocs/phpor.net/blog/wp-content/plugins/google-analytics-dashboard/ga-lib.php 导致,相关域名: www.googleapis.com ; 域名解析发现果然和上述IP契合
  12. 解决办法,直接禁用该插件

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据