http server 的ssl耗时问题

mrwu

我是用nginx转发到workerman,
经过测试,访问http是访问https的qps十倍左右.
就算ssl加密有消耗也不会这么多吧?
后来又测试tp框架下http和https的差距,只是60/30的差距
现在怀疑问题和proxy_pass转发有关系,请问有没有什么方法优化

2718 1 0
1个回答

maq

你这个测试场景,可以分成以下几个耗时环节:

① HTTP 请求(https 或者 http,前者开销要大很多)

② Nginx 转发和回传(proxy_pass 或者 fastcgi_pass,前者开销大一些,但总体影响应该不大)

③ PHP 程序执行过程(TP 或者 WM)

重点在第 ③ 个环节,倒不是 PHP 程序本身效率高低的问题(虽然 TP 框架复杂一点),主要是两者的进程模型不一样,TP 是在 PHP-FPM 里面跑的,受进程数的限制,测试过程中会有很多 request 处于等待状态;而 WM 是单进程异步处理,更适合高并发,在你这个测试规模下几乎不会有等待。

所以再看你的测试结果,WM 时 http 比 https 性能高十倍,这个大体上可以看做是 SSL 真实的性能比,而在 TP 时,即使用 http,第 ① 个环节全速跑起来,到了第 ③ 个环节还是堵住了,所以无法达到十倍。

  • 暂无评论
年代过于久远,无法发表回答
🔝