pconnect

虽然看不懂,但是感觉很厉害的样子

http://www.codeigniter.org.cn/forums/thread-11875-2-1.html

pconnect是指PHP到MySQL的连接。pconnect为真值时,CI调用PHP中的mysql_pconnect()。

mysql_pconnect()开一个PHP/MySQL的永久连接,PHP脚本结束时连接不会断,PHP结束时连接才会断。

在Apache下,PHP以module形式存在,Apache结束才会令PHP结束。使用FastCGI时,一般会以PHP执行总时间定下PHP的寿命,PHP会定期结束/重生。

pconnect是重用连接,而非共用连接。

MySQL的默认总连接是150,30秒后才超过150,以压力环境情况,若无重用,不断开启新连接,早应超过150,这证明PHP/MySQL的确在重用连接。

MySQL达至超过150个连接,说明有超过150个PHP进程。使用Apache时,PHP进程是以Apache进程存在,Apache默认的 MaxClients是256,但不少Linux服务器上一般会预设为150而不使用默认的256与MySQL吻合。Apache超过MySQL负荷是有点奇怪,是使用Windows吗?先去确认一下MaxClients吧!

有超过150个Apache进程存在,是说明PHP处理不来压力环境的请求率,处理不及时,进程逐渐累积达至超过MySQL的总连接。这是超负荷了。若负荷是瞬时的,把MySQL的max_connections增加至与Apache的MaxClients可增加瞬时负荷能力,但这不能增加持久的负荷力,继续下去总会达至系统完全饱和。

这问题与CI无关,是xAMP共有的负荷力问题,使用CI比纯PHP应用要早些达到负荷力饱和点,因使用CI要多耗费点资源。CI算是开销最低的PHP架构之一,不花钱在机器上,又不花时间去学会调试系统,去进行压力测试,不明所以便作出“CI还是很脆弱”的结论!无言以对!也许该放弃使用任何架构进行开发。

pconnect是鸡肋?对于压力负荷环境,除非内存限制极大,pconnect是极有好处的选择。

PHP并非不可事前编译为“中间码”,Zend是有提供编译器的,当然要付钞!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值