1、HTTPS性能損耗
前文討論了HTTPS原理與優(yōu)勢:身份驗證、信息加密與完整性校驗等,且未對TCP和HTTP協(xié)議做任何修改。但通過增加新協(xié)議以實現(xiàn)更安全的通信必然需要付出代價,HTTPS協(xié)議的性能損耗主要體現(xiàn)如下:
(1).增加延時
分析前面的握手過程,一次完整的握手至少需要兩端依次來回兩次通信,至少增加延時2* RTT,利用會話緩存從而復(fù)用連接,延時也至少1* RTT*。
(2).消耗較多的CPU資源
除數(shù)據(jù)傳輸之外,HTTPS通信主要包括對對稱加解密、非對稱加解密(服務(wù)器主要采用私鑰解密數(shù)據(jù));壓測 TS8 機型的單核 CPU:對稱加密算法AES-CBC-256 吞吐量 600Mbps,非對稱 RSA 私鑰解密200次/s。不考慮其它軟件層面的開銷,10G 網(wǎng)卡為對稱加密需要消耗 CPU 約17核,24核CPU最多接入 HTTPS 連接 4800;
靜態(tài)節(jié)點當(dāng)前10G 網(wǎng)卡的 TS8 機型的 HTTP 單機接入能力約為10w/s,如果將所有的HTTP連接變?yōu)镠TTPS連接,則明顯RSA的解密最先成為瓶頸。因此,RSA的解密能力是當(dāng)前困擾HTTPS接入的主要難題。
2、HTTPS接入優(yōu)化
(1).CDN接入
HTTPS 增加的延時主要是傳輸延時 RTT,RTT 的特點是節(jié)點越近延時越小,CDN 天然離用戶最近,因此選擇使用 CDN 作為 HTTPS 接入的入口,將能夠極大減少接入延時。CDN 節(jié)點通過和業(yè)務(wù)服務(wù)器維持長連接、會話復(fù)用和鏈路質(zhì)量優(yōu)化等可控方法,極大減少 HTTPS 帶來的延時。
(2).會話緩存
雖然前文提到 HTTPS 即使采用會話緩存也要至少1*RTT的延時,但是至少延時已經(jīng)減少為原來的一半,明顯的延時優(yōu)化;同時,基于會話緩存建立的 HTTPS 連接不需要服務(wù)器使用RSA私鑰解密獲取 Pre-master 信息,可以省去CPU 的消耗。如果業(yè)務(wù)訪問連接集中,緩存命中率高,則HTTPS的接入能力講明顯提升。當(dāng)前TRP平臺的緩存命中率高峰時期大于30%,10k/s的接入資源實際可以承載13k/的接入,收效非常可觀。
(3).硬件加速
為接入服務(wù)器安裝專用的SSL硬件加速卡,作用類似 GPU,釋放 CPU,能夠具有更高的 HTTPS 接入能力且不影響業(yè)務(wù)程序的。測試某硬件加速卡單卡可以提供35k的解密能力,相當(dāng)于175核 CPU,至少相當(dāng)于7臺24核的服務(wù)器,考慮到接入服務(wù)器其它程序的開銷,一張硬件卡可以實現(xiàn)接近10臺服務(wù)器的接入能力。
(4).遠程解密
本地接入消耗過多的 CPU 資源,浪費了網(wǎng)卡和硬盤等資源,考慮將最消耗 CPU 資源的RSA解密計算任務(wù)轉(zhuǎn)移到其它服務(wù)器,如此則可以充分發(fā)揮服務(wù)器的接入能力,充分利用帶寬與網(wǎng)卡資源。遠程解密服務(wù)器可以選擇 CPU 負載較低的機器充當(dāng),實現(xiàn)機器資源復(fù)用,也可以是專門優(yōu)化的高計算性能的服務(wù)器。當(dāng)前也是 CDN 用于大規(guī)模HTTPS接入的解決方案之一。
(5).SPDY/HTTP2
前面的方法分別從減少傳輸延時和單機負載的方法提高 HTTPS 接入性能,但是方法都基于不改變 HTTP 協(xié)議的基礎(chǔ)上提出的優(yōu)化方法,SPDY/HTTP2 利用 TLS/SSL 帶來的優(yōu)勢,通過修改協(xié)議的方法來提升 HTTPS 的性能,提高下載速度等。