码迷,mamicode.com
首页 > 数据库 > 详细

ECSHOP info: Can't pConnect MySQL Server(localhost:3306)!

时间:2018-02-23 10:56:40      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:class   log   mysql   释放   bsp   gpo   请求   blog   nbsp   

ecshop默认用的是普通连接方式,从报错中看出你用的是pconnet方式,此方式在并发量比较大时有以下蔽端:

apache模块方式下: 
区别在于当php以apache模块方式运行时, 由于apache有使用进程池, 一个httpd进程结束后会被放回进程池, 这也就使得用pconnect打开的的那个mysql连接资源不被释放, 于是有下一个连接请求时就可以被复用. 

这就使得在apache并发访问量不大的时候, 由于使用了pconnect, php节省了反复连接db的时间, 使得访问速度加快. 这应该是比较好理解的. 

但是在apache并发访问量大的时候, 如果使用pconnect, 会由于之前的一些httpd进程占用的mysql连接没有close, 则可能会因为mysql已经达到最大连接着, 使得之后的一些请求永远得不到满足. 

例如: 
若mysql最大连接数设为500, 而apache的最大同时访问数设为2000 
假设所有访问都会要求访问db, 而且操作时间会比较长 

当前500个请求的httpd都没有结束的时候...之后的httd进程都是无法连接到mysql的(因已经达到mysql最大连接数). 只有当前500个httpd进程结束或被复用才可以连接得到了mysql。

ECSHOP info: Can't pConnect MySQL Server(localhost:3306)!

标签:class   log   mysql   释放   bsp   gpo   请求   blog   nbsp   

原文地址:https://www.cnblogs.com/zhendong/p/8460741.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!