当我的用户使用我的CakePHP应用程序时,我一直在睡觉mysql进程。
这是一个问题,因为在该用户的计算机上冻结(无限加载)对应用程序的访问。当一个用户的应用程序被冻结时,其他计算机上的用户似乎不会受到影响。为该特定用户清除此问题的唯一方法是重新启动服务器上的apache服务(这在我在此服务器上运行多个按钮应用程序时并不理想。)
等待超过5分钟后,用户会收到此错误,这似乎是由我们的代理服务器生成的。
ERROR
The requested URL could not be retrieved
While trying to retrieve the URL: [no URL]
The following error was encountered:
Read Timeout
The system returned:
[No Error]
A Timeout occurred while waiting to read data from the network. The network or server may be down or congested. Please retry your request.
Your cache administrator is root.
我正在努力确定是什么导致查询“入睡”,并因此修复它。
在我看来,问题可能存在三种选择:
有什么想法吗?
我的SHOW PROCESSLIST
查询结果如下所示:
ID User Host Database Command Time Status SQL query
Kill 330 instrument localhost:1267 instrument_2012 Sleep 5235 --- ---
Kill 331 pma localhost:1270 None Sleep 0 --- ---
Kill 332 root localhost:1271 mysql Query 0 --- SHOW PROCESSLIST
我将查询中检索的记录数限制为800,响应时间为12秒。当我检索1200条记录时,响应时间为72秒。当我检索1600条记录时,响应时间为132秒。
为什么响应时间增长如此之快?
答案 0 :(得分:0)
我不认为这是mysql的问题,而是php / apache。你可以检查一下导致CPU占用率高的进程名称是什么?
睡眠意味着工作线程对于用户的会话是空闲的,因为用户还没有关闭连接.BTW错误消息来自squid代理,因为目标网站在一段时间内没有响应。