Я использую Apache 2.2, работающий на Windows Server 2008 R2, в качестве сервера WebDAV для клиентов, чтобы загружать большие медиафайлы (примерно 100-2000 МБ). Я обнаружил, что когда у меня включен SSL (openSSL 0.9.8o) и используется HTTPS для загрузки, пропускная способность составляет около 13 Мбит / с, но когда я отключу его и просто использую HTTP, я получаю около 80 Мбит / с. Я не могу понять, почему это происходит, так как я понял, что тяжелая работа с SSL была сделана в начале соединения.
Если это помогает клиенту, который я использую, это cURL командной строки, и вот команда:
curl -k -f -u digital:recorder -T 00320120321101048_ch1.mkv http://mediaserver/webdav/
curl -k -f -u digital:recorder -T 00320120321101048_ch1.mkv https://mediaserver/webdav/
Кто-нибудь знает, почему включение SSL так сильно влияет на производительность?
Ура.
ОБНОВЛЕНИЕ: проблема не существует на клиентах Windows 7, поэтому это происходит только на XP. Это, по крайней мере, указывает на то, что проблема находится на стороне клиента. Я использую одну и ту же командную строку в обеих системах, но она влияет только на WinXP. Кто-нибудь знает, почему это может быть? Что XP каким-то образом снижает скорость загрузки SSL?
Я также проводил тесты в Fedora Linux. Таким образом, проблема теперь была определена более точно: одна и та же версия cURL + OpenSSL, загружающая один и тот же файл на тот же сервер, выполняется быстро в Linux и Windows 7, но очень медленно в Windows XP.
Кто-нибудь может помочь с этим, потому что я действительно ударился о кирпичную стену!
Ответ заключался в том, что это проблема того, как Windows XP обрабатывает пакеты SSL. Удивительно, но факт. В конце концов, мы сами изменили библиотеку cURL, чтобы избежать этой проблемы.
Для всех, у кого есть эта проблема с Apache в качестве цели WebDAV, я обнаружил, что другой вариант - использовать директиву SSLCipherSuite для изменения уровня шифрования на СРЕДНИЙ (по умолчанию - ВЫСОКИЙ). Это означает, что он использует 128-битное шифрование RSA, а не 256-битное шифрование AES, что увеличило пропускную способность до почти незашифрованных уровней скорости. Это может помочь или не помочь на серверах IIS, так как у меня еще не было возможности попробовать это.
SSL-шифрование - это задача, требующая интенсивного использования ЦП. «Тяжелая работа с SSL» не выполняется сразу после установления соединения, но шифрование должно выполняться для всей загрузки файла.
Проверьте потребление ЦП вашего сервера с включением SSL и без него, и вы увидите большую разницу.