0

私の質問は、ロード中の OpenSSL の暗号化コストに関するもので、問題は次のとおりです。IMAP4 経由で SSL を使用する場合 (私たちが作成したアプリケーション、ある種の IMAP4 プロキシを使用)、2 つの異なる方法でメッセージをフェッチします。フェッチ。2. 部分フェッチ (チャンクのフェッチ)。アプリケーションに関する限り、部分フェッチとフル フェッチの最初のチャンクはほぼ同等の労力です。ただし、データをクライアントに送り返すとき (本文全体またはその一部) は、SSL 暗号化のために途方もない応答時間が発生します。データが大きいほど、OpenSSL が暗号化するのに時間がかかることがはっきりとわかります (サイズに線形であり、完全対部分はそれを美しく示しています。問題は、時間がかかることではなく、暗号化する絶対的な時間かかります)。これにより、80k のフル フェッチで 7 秒の応答時間が発生する可能性があります (SSL を使用しない場合は 1 秒強)。誰かが同様の問題に遭遇したことがありますか? そのようなオーバーヘッドが現実的である可能性はありますか? 外部アクセラレータを追加せずに、データをクライアントに戻すためのアイデアを持っている人はいますか? ありがとう。

4

1 に答える 1

0

あなたの製品はあなたが作成したプロキシであるとおっしゃっているので、まず問題がNagle のアルゴリズムに関連しているかどうかを確認します。床を通してソケットのパフォーマンスが低下しているのを目にしたとき、これを最初にチェックします。基本的に、プログラムの適切なポイントでデータを書き込んでフラッシュしていることを確認する必要があります。間違った場合、デフォルトでは、データが送信される前に 0.2 秒の遅延が発生します。これらの遅延は、特に小さなリクエストが頻繁に発生する場合に急速に増加します。

于 2009-06-29T07:53:48.467 に答える