回答:
クイック&ダーティテスト(つまり、最適化なし)のために、ローカルのUbuntu 9.04 VMでhttpとhttps(自己署名証明書)の両方を使用して単純なUbuntu apache2デフォルトWebサイト(「It works!」と表示)を有効にし、Apacheを実行しましたab
10,000リクエストのベンチマーク " "(同時実行性なし)。クライアントとサーバーは同じマシン/ VM上にありました:
http( " ab -n 10000 http://ubuntu904/index.html
")の結果
https( " ab -n 10000 https://ubuntu904/index.html
")の結果:
単一のリクエストのtcp / ip通信を詳しく見ると(たとえば、tcpdumpまたはwiresharkを使用)、httpの場合はクライアントとサーバー間で10パケットが必要ですが、httpsでは16が必要です。(遅延の重要性についてはこちら)
キープアライブ(ab
オプション-k
)をテストに追加すると、すべての要求が同じ接続を共有するため、状況が改善されます。つまり、SSLオーバーヘッドは低くなりますが、httpsは測定可能なほど遅くなります。
キープアライブ( " ")を使用したhttpの結果ab -k -n 10000 http://ubuntu904/index.html
キープアライブ( " ")を使用したhttpsの結果ab -k -n 10000 https://ubuntu904/index.html
:
結論:
現代のサーバーでは、ボトルネックは暗号化ではなくネットワークとアプリケーションにあると思います。ApacheのTLS / SSLは、かなり最適化されたCで記述されるため、特にデータベースアクセスなどを行う場合は、PHPコードによってd小になります。暗号化がプロセス全体の大きな部分を占めるようになるため、静的ファイルの提供はおそらく大きな影響を与えるでしょう。具体的な数字をお伝えすることはできませんが、5%を超えていて、おそらく2〜3%に近い場合は驚かれることでしょう。
暗号化に追加される負荷は、含まれる他のすべての要素(スクリプト、ネットワークなど)と比較して非常に小さいことを確認できます。