PHP -fpm 引起的 udp 端口占用过多,导致 udp 出不去, DNS 无法解析

2017-08-30 15:03:57 +08:00
 pizida

背景: 收到 Unknown: php_network_getaddresses: getaddrinfo failed: Name or service not known 错误提示。这个提示显然是域名解析出现问题了。

检查: dig 域名 提示:dig: isc_socket_bind: address in use

nslookup 域名 提示: nslookup: isc_socket_bind: address in use

通过上面提示都可以看到,udp

netstat -anulp|grep php-fpm|head -n20、 udp 0 0 0.0.0.0:10240 0.0.0.0:* 13522/php-fpm: pool udp 0 0 0.0.0.0:10241 0.0.0.0:* 13704/php-fpm: pool udp 0 0 0.0.0.0:10244 0.0.0.0:* 13269/php-fpm: pool udp 0 0 0.0.0.0:10249 0.0.0.0:* 13435/php-fpm: pool udp 0 0 0.0.0.0:10250 0.0.0.0:* 13546/php-fpm: pool udp 0 0 0.0.0.0:10254 0.0.0.0:* 13330/php-fpm: pool udp 0 0 0.0.0.0:10257 0.0.0.0:* 13668/php-fpm: pool udp 0 0 0.0.0.0:10259 0.0.0.0:* 14203/php-fpm: pool udp 0 0 0.0.0.0:10261 0.0.0.0:* 13748/php-fpm: pool udp 0 0 0.0.0.0:10262 0.0.0.0:* 13412/php-fpm: pool udp 0 0 0.0.0.0:10263 0.0.0.0:* 14182/php-fpm: pool udp 0 0 0.0.0.0:10264 0.0.0.0:* 13879/php-fpm: pool udp 0 0 0.0.0.0:10265 0.0.0.0:* 14208/php-fpm: pool udp 0 0 0.0.0.0:10267 0.0.0.0:* 13391/php-fpm: pool udp 0 0 0.0.0.0:10268 0.0.0.0:* 13664/php-fpm: pool udp 0 0 0.0.0.0:10270 0.0.0.0:* 13727/php-fpm: pool udp 0 0 0.0.0.0:10271 0.0.0.0:* 13239/php-fpm: pool udp 0 0 0.0.0.0:10280 0.0.0.0:* 14023/php-fpm: pool udp 0 0 0.0.0.0:10283 0.0.0.0:* 13562/php-fpm: pool udp 0 0 0.0.0.0:10284 0.0.0.0:* 13514/php-fpm: pool

发现 php-fpm 拉起了过多的 udp,占用大量临时端口,很可能是这个问题造成的。

但是目前只能通过 crontab 脚本重启 php-fpm,释放这些 udp,但是依旧不知道具体造成的原因是什么。

以前使用 nginx+php-fpm 的时候也没有遇到这个问题。

不知道有没有彻底根治的更加的解决方案。 看网上有人说搭建 dnsmasq 来 cache,减少 udp 查询,但觉得这个也不是治本的方法。

2310 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/386887

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX