PHP 持久连接于并发
浏览:4386次 出处信息
一次请求中需要访问相同的mc多次,如果串行来做的话,花费时间很长,如果多次mc连接能同时执行的话,花费时间将接近于一次连接的时间。
我不行每次请求都重新连接mc,希望使用PHP的长连接机制。
问题:
如果使用PHP的长连接,则同一次请求中的多次连接将很难实现,因为第二次pconnect返回的连接不是一条新的连接(不管是pfsockopen、mysql_pconnect 都是如此),所以,我将无法创建多个连接;
如果不使用长连接,则每次请求连接多次mc也是不小的开销。
如果真的能通过长连接来实现,则如果某一次请求需要20个连接,但是这种情况很少见,一般可能只有5个,于是我就要因为这一次请求,在一段时间内多维持15个长连接,确实不是一件愿意接受的事情,于是,我可能采用每个请求最多允许5个连接的方式,如果需要20次访问mc,则平均每个连接访问4次,就是说一半来讲,速度是纯串行的5倍
结论:
PHP长连接和多次连接是没法和平共处的,要想同时多个到相同host:port的连接,其中最多只能有一个长连接
相关知识:
PHP的mysql模块中有一个mysql.max_persistent的配置,就是长连接的最大个数,开始以为到同一个host:port可以有多个长连接,但是怎么也想不通,看了源码才知道,到同一个host:port只能有一个长连接,这里限制的是对不同的host:port产生的长连接。
对于fsockopen打开的长连接是没有明确的个数限制的。
建议继续学习:
- 一种常见的并发编程场景的处理 (阅读:22683)
- Rolling cURL: PHP并发最佳实践 (阅读:10440)
- 查看 Apache并发请求数及其TCP连接状态 (阅读:8632)
- 大型高并发高负载网站的系统架构分析 (阅读:7788)
- 大并发下的高性能编程 – 改进的(用户态)自旋锁 (阅读:7234)
- 并发编程系列之一:锁的意义 (阅读:6024)
- 并发框架Disruptor译文 (阅读:5222)
- 学习:一个并发的Cache (阅读:5042)
- C++多进程并发框架 (阅读:4825)
- Squid 限制用户并发连接数 (阅读:4005)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:PHP simplexml_load_file与特殊字符
后一篇:定制自己的PHP语法 >>
文章信息
- 作者:phpor 来源: PHPor 的Blog
- 标签: 并发 持久连接
- 发布时间:2010-07-18 23:29:44
建议继续学习
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [69] IOS安全–浅谈关于IOS加固的几种方法
- [66] 如何拿下简短的域名
- [64] android 开发入门
- [63] find命令的一点注意事项
- [63] Go Reflect 性能
- [62] 流程管理与用户研究
- [61] Oracle MTS模式下 进程地址与会话信
- [60] 图书馆的世界纪录
- [60] 读书笔记-壹百度:百度十年千倍的29条法则