今天我们网站的用户增加了(大约是正常负载的两倍),我们的系统开始变慢。我们的MySQL位于它自己的物理盒上,我们已经开始在日志中收到这些错误;
[Mon Jul 18 15:30:07 2011] [error] [client 2.221.255.55] PHP Warning: mysql_select_db() [<a href='function.mysql-select-db'>function.mysql-select-db</a>]: A link to the server could not be established in /home/livesite/_util.inc on line 301, referer:
MySQL盒子很好,并且很高兴地响应我们的开发服务器,但是我们的活动服务器,随着负载的增加,看到这个错误消息。
有谁知道为什么PHP会在另一个盒子上停止与MySQL的通信?
您的连接限制可能过低。通常你会得到一个不同的错误,但如果这是问题,我不会感到惊讶:
http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html我怀疑第301行正在调用某些函数,例如mysql_real_escape_string()
,这解释了错误。可能有一个不同的错误连接,如"太多的连接",但这不会在你的日志,如果你的连接线有一个@
在它的前面。
也许你应该看看你的PHP INI文件中的mysqli。Max_persistent之类的?也许你的逻辑连接没有断开-足够快吗?