php socket为什么这么慢,直到超时
浏览:3651次 出处信息
问题是出在一次模拟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调试、抓包工具 (阅读:9283)
- 推荐一些socket工具,TCP、UDP调试、抓包工具 (阅读:7035)
- 用unix socket加速php-fpm、mysql、redis的连接 (阅读:6282)
- 浅析linux kernel network之socket创建 (阅读:5529)
- nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket (阅读:4826)
- web socket 心跳包的实现方案 (阅读:4776)
- python中的socket代理 (阅读:4656)
- TCP keep-alive & connection pool (阅读:4624)
- ssh连接超时解决办法 (阅读:4323)
- netstat和web主机socket文件分析 (阅读:4286)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:变量引用可提供执行速度
文章信息
- 作者:gently 来源: Zend Studio
- 标签: connection keep-alive socket 超时
- 发布时间:2010-08-23 09:59:38
建议继续学习
近3天十大热文
- [557] Go Reflect 性能
- [18] 正态分布的前世今生(一)
- [13] rsync同步的艺术
- [12] 什么是DNS劫持和DNS污染?
- [12] Linux Used内存到底哪里去了?
- [12] jQuery性能优化指南
- [11] Mac下.apk的反编译
- [11] Cuckoo Filter:设计与实现
- [10] [译]Google Chrome中的高性能网
- [10] Linux常用系统信息查看命令