2009-06-29 5 views
0

Мой вопрос относится к затратам на шифрование OpenSSL во время загрузки, и вот в чем проблема: при работе с SSL через IMAP4 (используя приложение, которое мы пишем, какой-то прокси-сервер IMAP4) , мы получаем сообщения двумя разными способами: 1. полная выборка. 2. частичная выборка (выборки). Первый фрагмент частичной выборки и полной выборки почти эквивалентен усилиям в отношении приложения. Однако происходит то, что при отправке данных обратно клиенту (либо всему телу, либо просто его кусочку) мы получаем нелепое время отклика из-за шифрования SSL. Мы ясно видим, что чем больше данных, тем больше времени занимает OpenSSL для его шифрования (линейный по размеру и полный или частично показывает это красиво). Проблема заключается не в том, что требуется больше времени, а в абсолютном времени, дубли). Это приводит нас к ситуации, когда полная выборка из 80 тыс. Может привести к 7-секундному времени отклика (примерно через 1 секунду, когда НЕ используется SSL). Кто-нибудь сталкивался с подобной проблемой? Есть ли вероятность, что такие накладные расходы могут быть реалистичными? У кого-нибудь есть идея ускорить передачу данных клиенту (без добавления внешнего ускорителя)? Спасибо.Шифрование OpenSSL занимает очень много времени при загрузке

ответ

0

Поскольку вы упоминаете, что вы являетесь прокси-сервером, который вы написали, я бы сначала посмотрел, может ли проблема быть связана с Nagle's algorithm. Когда я вижу производительность сокета через пол, это первое, что я проверяю. В принципе, вам необходимо убедиться, что вы пишете и очищаете данные в правильных точках вашей программы. Если вы сделаете это неправильно, по умолчанию перед отправкой данных будет задержка в 0,2 секунды. Эти задержки быстро складываются, особенно во время частых небольших запросов.