nginx的http20效能太逆天了,HTTPS網站效能最佳化

來源:互聯網
上載者:User
背景

我們七層負載層,使用了5台24U+64G記憶體的物理機支行nginx做https加解密與proxy_pass。每天上下班時段,5台機CPU基本在50%左右,算是計算型。
最佳化手段:keepalive、換TLS1.2密碼編譯演算法最佳化(參考:1,2)等,收效不大。
特別簡明一下keepalive選項,不論服務端如何支援,關鍵是用戶端不跟你keep,你玩個屁。

測試過程

  • 硬體: 24U+64G物理機2台,1台跟測試,1台跑ngx; 同個區域網路內,1GB網卡。
  • nginx -V:

    version: openresty/1.9.7.3
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
    built with OpenSSL 1.0.1e-fips 11 Feb 2013
    TLS SNI support enabled
    –with-http_v2_module

  • Apache的ab壓測工具: yum安裝

  • boom 是類比ab的golang實現的壓測工具: https://github.com/rakyll/boo
  • nghttp2 的 h2load 壓測工具: https://github.com/tatsuhiro-t/nghttp2
  • CentOS-7 64位
  • 測試檔案大小:5k,10k的圖片,作靜態檔案的https測試。
  • 測試過程簡單來看參數:-c=100~3000,-n=1k~10kw 的各種組合, 使用h2load時-m=1~1000都有試過,-m範圍大小,對http2結果影響不太大。

圖:

放流量圖你就明白了:

為使用ab與boom時:

此時ab與boom都有使用-k,反正怎麼玩,測量與時間都大概在這個水平。
例如以下命令,基本上要跑個半小時:

boom -c 1000 -n 1000000 -allow-insecure https://172.16.9.234/5k.jpg
ab -c 1000 -n 1000000 -khttps://172.16.9.234/5k.jpg

參數不變換成http2時:

h2load -c 1000 -n 1000000 -m1 https://172.16.9.234/5k.jpg

h2load運行結果如下:

再有為h2load測試http2時:

千兆網卡,流出流量全滿上。

結論

以下結論經過多次重複測試,只代表本人意見,轉載請註明from:toontong.

  1. 同等並發數下,http2.0隻用了43秒傳輸完4.3G資料;而http1.1用40多分鐘。
  2. 單論傳輸效能提升10倍不止,對我們關鍵的https CPU佔用效果非常明顯。
  3. 對web服務整體效能提升當然沒10倍,原因還有串連建立在需時等,更多原因要深研http2原理了。
  4. go1.6後才有http2-client庫的支援,低版本go感覺可以使用https://github.com/tatsuhiro-t/go-nghttp2
  5. 如果真普及http2.0,對整個互聯流量,互連網公司的機器節約,都是大大福音。

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介紹了nginx的http20效能太逆天了,HTTPS網站效能最佳化,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.