已经问过这个问题堆栈溢出但我想这里可能是个更好的地方。
我目前正在努力解决一个奇怪的问题:当使用 adodb 作为 php 的连接层时,它会留下许多休眠和不需要的连接。wait_timeout
设置为20
,但由于系统负载高,仍然有很多(~100)休眠连接。MySQL 版本:5.5.24-0ubuntu0.12.04.1
是否有关于 adodb5 和休眠连接的已知错误?我不是使用持久连接!连接建立:
$conn = &ADONewConnection($DBTYPE);
$conn->Connect($DBHOST, $DBUSER, $DBPASSWORD, $DBNAME)
非常感谢任何关于如何减少睡眠连接数量的提示/建议。
机器设置:两台服务器,带有apache2
和lighty
,前面有负载均衡器和防火墙,nfs mount
带有文档根目录和带有的虚拟机mysql
。
与数据库建立大量连接:
863 <db01>
其他机器:
476 <db01>
奇怪的是:数据库上只有 3-6 个活动进程 - 其他进程都处于休眠状态。
答案1
好的,终于找到了问题:vhost 文档根目录位于 nfs 挂载(远程)上。此挂载存在一些 IO 问题,导致 apache“空闲”连接,直到 nfs 挂载再次准备就绪。