php socket为什么这么慢,直到超时
浏览:3869次 出处信息
问题是出在一次模拟http请求的把戏中,我之前还真没有注意到,但后来还是想明白了,多看看http协议不无坏处。当时我将其记录在内网了,发出来大家参考吧。教训啊,血淋淋的教训
在项目开发过程中,自己写了一个基于HTTP的API,来完成服务器之间的通讯,在直接用socket模拟POST请求的时候,异常缓慢,大约需要5秒钟才有响应(从服务端返回的头部来看:Keep-Alive: timeout=5,max=100),后来用PHP自带的SOAP扩展来完成,结果速度出奇的快!60ms左右。
同样是PHP差别为什么这么大?
后来把我自己写的HTTP头部的connection设置为close,速度也变的非常快,可是调试soap的那个请求,connection是keep-alive的,默认的不声明connection也会被apache设定为keep-alive(http1.1协议默认启用keep-alive),所以,依此解释,自己模拟的POST不会这么慢!
而且,通过ab测试,keep-alive所花费的时间是更短的,可是用php模拟就变的非常的长时间。。。。。。。。。。。。。唉!这到底是个什么诡异的问题呢。。。。
到现在为止,我实际上没有真正找到这个问题的答案,只是暂时的将http头部的connection设为close,使得php socket不会那么慢,个人认为soap的那个请求是客户端主动断开连接了,没有十足的证据。
建议继续学习:
- 推荐一些socket工具,TCP、UDP调试、抓包工具 (阅读:9428)
- 推荐一些socket工具,TCP、UDP调试、抓包工具 (阅读:7266)
- 用unix socket加速php-fpm、mysql、redis的连接 (阅读:6503)
- 浅析linux kernel network之socket创建 (阅读:5706)
- nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket (阅读:5005)
- web socket 心跳包的实现方案 (阅读:4927)
- python中的socket代理 (阅读:4813)
- TCP keep-alive & connection pool (阅读:4821)
- ssh连接超时解决办法 (阅读:4481)
- netstat和web主机socket文件分析 (阅读:4436)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:变量引用可提供执行速度
文章信息
- 作者:gently 来源: Zend Studio
- 标签: connection keep-alive socket 超时
- 发布时间:2010-08-23 09:59:38
建议继续学习
近3天十大热文
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [53] android 开发入门
- [53] 图书馆的世界纪录
- [52] Go Reflect 性能
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [49] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑