php socket为什么这么慢,直到超时
浏览:3655次 出处信息
问题是出在一次模拟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调试、抓包工具 (阅读:9287)
- 推荐一些socket工具,TCP、UDP调试、抓包工具 (阅读:7042)
- 用unix socket加速php-fpm、mysql、redis的连接 (阅读:6283)
- 浅析linux kernel network之socket创建 (阅读:5530)
- nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket (阅读:4829)
- web socket 心跳包的实现方案 (阅读:4780)
- python中的socket代理 (阅读:4658)
- TCP keep-alive & connection pool (阅读:4627)
- ssh连接超时解决办法 (阅读:4328)
- netstat和web主机socket文件分析 (阅读:4292)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:变量引用可提供执行速度
文章信息
- 作者:gently 来源: Zend Studio
- 标签: connection keep-alive socket 超时
- 发布时间:2010-08-23 09:59:38
建议继续学习
近3天十大热文
- [254] Go Reflect 性能
- [19] 公钥私钥加密解密数字证书数字签名详解
- [16] 正态分布的前世今生(一)
- [15] osx平台上lol英雄联盟launcher启
- [15] 基于HTTP缓存轻松实现客户端应用的离线支持
- [15] Joomla反序列化漏洞的查漏补缺
- [14] Linux内存中的Cache真的能被回收么?
- [13] 我的git笔记
- [12] SSL多域名绑定证书的解决方案
- [12] 在JavaScript中什么时候使用==是正