如何查看php进程请求的socket详情
php项目中应该出现了一个,cpu峰值会达到100%,一个月会出现一次有500个php进程假死,看这些进程,都请求了一个不清楚的socket。
这个请求应该是项目中的代码读取了远程的链接,或者api等,但如何知道这个请求具体连接是哪个链接或者ip。
[root@ser35 fd]# pwd /proc/20853/fd [root@ser35 fd]# ll 总计 0 lrwx------ 1 www www 64 07-03 13:44 0 -> socket:[251145888] lrwx------ 1 www www 64 07-03 13:44 1 -> /dev/null lrwx------ 1 www www 64 07-03 13:44 2 -> /dev/null
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
strace
最近刚刚弄过这个东西,你先在/proc/PID/fd下找到FD号,比如你这里的socket为fd0,后面的数字是251145888,然后再lsof -p PID|grep 251145888,这里会告诉你连了哪个IP,有时候还会反解析出域名的,还有端口或协议告诉你,,,
协议通常是http或是mysql或是一些比较陌生的名字,具体的端口号可以通过/etc/services里去对比。
我能想到的办法是查apache日志,定义日志格式,加上页面执行时间,这样来找耗资源的请求
netstat -ant
lsof -p [pid]
pstree -p [pid]
strace -p [pid]
tcpdump
netstat -ant
lsof -p [pid]
pstree -p [pid]
strace -p [pid]
tcpdump
最近刚刚弄过这个东西,你先在/proc/PID/fd下找到FD号,比如你这里的socket为fd0,后面的数字是251145888,然后再lsof -p PID|grep 251145888,这里会告诉你连了哪个IP,有时候还会反解析出域名的,还有端口或协议告诉你,,,