使用http1.1协议做高效RPC (15W tps)
来源:http://www.tudoupe.com时间:2022-03-01
http1.1协议支持长连接,支持pipelining;
1)http头设置keep-alive选项,tcp socket连接服务器后,双方不再轻易断开,这样可以减少建立连接所需要的开销;
2)pipelining是服务器支持流水线机制,客户端不需要等待response,而不停的发送request,异步等待应答并解析;
在网络时延比较大的情况下,如果使用pipelining机制可以很好的避免网络时延造成的性能下降;但是我所使用的HttpLib客户端是使用同步获取的;即便是Curl在目前的版本也并不支持pipelining机制;
1)HttpLib使用每线程一个连接模型,比较土,开50线程,在目前笔记本上也最多到2W左右的RPC调用;
2)Curl也类似,可使用MultiWait机制实现异步(epoll模式,我没有调通);能达到5W左右;
而典型的HTTP压力测试工具wrk对简单的gohttp测试,可以达到12w tps;
所以我决定自己重新造一个轮子;
目前测试使用dell笔记本,4核i7-11,16G内存,本地开启go-http-server,把CPU打满,请求和应答都是使用小包:
测试结果:
1)异步等待模式:3线程,9连接,能到11w tps;
2)pipelining模式:2线程,4连接,能15w tps;

附加:go-http-server测试代码:
等代码测试稳定,我传到github上;
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
