【发布时间】:2012-02-09 02:59:27
【问题描述】:
我的一个使用 Apache + PHP + Mysql 的站点没有释放连接。连接数不断增长。并且连接状态为睡眠。
| 138 | root | localhost | NULL | Sleep | 183 | | NULL |
| 140 | root | localhost:50488 | A | Sleep | 256 | | NULL |
| 142 | root | localhost:50512 | A | Sleep | 253 | | NULL |
| 151 | root | localhost:50668 | A | Sleep | 222 | | NULL |
| 152 | root | localhost:50684 | A | Sleep | 221 | | NULL |
| 155 | root | localhost:50714 | A | Sleep | 214 | | NULL |
| 157 | root | localhost:50751 | A | Sleep | 207 | | NULL |
检查哪个使用端口50488连接到mysql:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 17147 mysql 15u IPv4 150696739 0t0 TCP localhost:mysql->localhost:50488 (ESTABLISHED)
httpd 17487 apache 18u IPv4 150696738 0t0 TCP localhost:50488->localhost:mysql (ESTABLISHED)
脚本结束时PHP自动关闭连接,这很荒谬。
任何原因都可能导致此问题?
【问题讨论】:
-
可能是您的某些页面运行速度非常慢,这意味着连接已建立并且页面顶部,随后页面仍在等待其他资源响应,然后mysql连接仍然处于活动状态(这解释了为什么连接处于睡眠状态)
-
@ajreal 我可以确认页面已成功结束。并且连接的状态是睡眠