【发布时间】:2019-04-04 12:52:26
【问题描述】:
我正在运行带有 apache 2.4.38 和 Maria DB 10.1.38 + PHP 7.3.3 的 Windows Server 2016
有时,我可以看到(使用 netstat)从 127.0.0.1:3306 到 127.0.0.1:64XXX 有很多很多很多的连接。
netstat 示例:
Proto Local IP Distant IP Stat PID
TCP 127.0.0.1:64896 127.0.0.1:3306 TIME_WAIT 0
TCP 127.0.0.1:64897 127.0.0.1:3306 TIME_WAIT 0
TCP 127.0.0.1:64898 127.0.0.1:3306 TIME_WAIT 0
TCP 127.0.0.1:64899 127.0.0.1:3306 TIME_WAIT 0
TCP 127.0.0.1:64900 127.0.0.1:3306 TIME_WAIT 0
TCP 127.0.0.1:64901 127.0.0.1:3306 TIME_WAIT 0
TCP 127.0.0.1:64902 127.0.0.1:3306 TIME_WAIT 0
TCP 127.0.0.1:64903 127.0.0.1:3306 TIME_WAIT 0
TCP 127.0.0.1:64904 127.0.0.1:3306 TIME_WAIT 0
它会达到 151 个连接(这是最大限制)并且它会阻止其他连接。 我没有看到任何在 SQL 请求上“循环”的 PHP 脚本...
我在日志/日志错误中没有任何痕迹,我不知道是什么导致了这么多连接。
您是否知道从哪里开始寻找这些联系或可能是什么原因造成这些联系?
感谢您的帮助
【问题讨论】:
-
查看这里了解更多信息stackoverflow.com/questions/5062839/…
-
每次页面加载都会使 Apache 启动一个新的 PHP 进程,该进程(可能)打开与 MySQL 的连接。尝试使用持久连接,以便重用当前句柄,而不是每次都创建一个新句柄。很难告诉你它为什么会发生,但由于我遇到了许多奇怪的事情,我很久以前就停止使用 Apache。可悲的是,您没有使用 *nix,这会阻止您使用 nginx 和 php-fpm(这不仅是首选方式,也是最高效的方式)。考虑使用虚拟机并在 windows 下放弃 apache。