负载均衡HTTPS服务性能测试
#1.CLB负载均衡器https能力说明
七牛云CLB负载均衡器通过对协议栈及服务端的深度优化,实现了HTTPS性能的巨大提升。同时,我们也通过证书的国际合作,极大降低了证书的成本。七牛云CLB在如下几个方面能够为业务带来非常显著的收益:
- 使用HTTPS并不会降低client端的访问速度。
- 集群内单台服务器SSL加解密性能,高达6.5W cps的完全握手。相比高性能CPU提升了至少3.5倍,节省了服务端成本,极大提升了业务运营及流量突涨时的服务能力,增强了计算型防攻击的能力。
- 支持多种协议卸载及转换。减少业务适配客户端各种协议的压力,业务后端只需要支持HTTP1.1就能使用HTTP2,SPDY,SSL3.0,TLS1.2等各版本协议。
- 一站式SSL证书申请、监控、替换。我们和国际顶级的证书厂商comodo,symantec展开对话,探讨合作,大幅缩减证书申请流程及成本。
- 防CC及WAF功能。能够有效杜绝慢连接、高频定点攻击、SQL注入、网页挂马等应用层攻击。
2. 测试目的
HTTPS服务拥有身份验证,信息加密及完整性校验等优势,但通过新增SSL协议实现安全通信,必然会产生一定的性能损耗,主要包括延时的增加及加解密消耗CPU资源等方面。本文测试了七牛云https服务在SSL加解密情况下的极限性能数据,供用户与https传统性能数据进行比对和参考。
3. 测试环境
- 压力工具:wrk 4.0.2
- 七牛云底层服务环境:Nginx 1.1.6_1.9.9 + Openssl 1.0.2h
- 安装Nginx机器操作系统信息:Linux TENCENT64.site 3.10.94-1-tlinux2-0036.tl2 #1 SMP Thu Jan 21 03:40:59 CST 2016 x86_64 x86_64 x86_64 GNU/Linux
- 其他压力机器操作系统:Linux TENCENT64.site 2.6.32.43-tlinux-1.0.17-default #1 SMP Tue Nov 17 18:03:12 CST 2015 x86_64 x86_64 x86_64 GNU/Linux
4. WebServer集群测试方案
由于单台压力机无法发送足够大的压力测试七牛云https服务的极限性能,需要采用多台压力机来发送压力,整个测试包含三部分:
1) 压力机集群。用来发送http/https压力,并输出单台机器的压力测试结果 。
2) 中控机,同步控制压力机集群的启动和结束,获取各台机器的压力数据并汇总输出。
3) 测试机,即承载七牛云https服务的云机器,测试webserver性能,直接返回页面,不需要连接upstream。
连接关系如下表示:
5. HTTPS WebServer测试性能数据
连接类型 | Session cache | 包体(bytes) | 加密套件 | 性能(qps) |
---|---|---|---|---|
长 | 打开 | 230 | ECDHE-RSA-AES128-GCM-SHA256 | 296241 |
短 | 关闭 | 230 | ECDHE-RSA-AES128-GCM-SHA256 | 65630 |
6. CLBhttps能力测试结论
由上表可知,七牛云HTTPS支持SSL加解密,其后端拥有多个服务器集群,单集群的单台云主机完全握手性能可达到65000 qps,长连接时性能可以达到约300000qps。
普通情况下,HTTPS协议由于使用SSL协议,增加了至少一次完整握手的过程,因此增加延时为2*RTT。此外,SSL对称/非对称加密将消耗大量CPU资源,RSA的解密能力是困扰HTTPS接入的主要难题。
使用七牛云负载均衡的HTTPS服务,用户无需为SSL加解密单独部署服务,且七牛云不收取任何额外费用,让用户轻松拥有极强的业务承载能力和防攻击能力。
文档反馈
(如有产品使用问题,请 提交工单)