Статистика

Участников проекта 105
Опубликовано статей 78
Отчет по карме. Топ 20

Новости блога

1 29.11.2013  Сегодня самым активным участникам newblog'а был выплачен доход с sape.
7 02.11.2012  Ура! Свешилось, нашему сайту дали тИЦ 10. Спасибо всем кто принимает участие в развитии нашего блога.
8 21.08.2012  Интеграция с sape.ru. Теперь каждый автор статей на newblog автоматически зарабатывает на рекламе.
Все новости

Топ 5 категорий

Программирование 46
Операционные системы 9
Базы данных 4
Туризм 2
Заметки 2

Последние 5 заметок (90)

gullyar - Закладки gullyar
gullyar - Ваша первая закладка
osadchaya - Закладки osadchaya
Ira0231188 - Закладки Ira0231188
Ira0231188 - Закладки Ira0231188

Ссылки

www.freedev.asia

http vs https

16.11.2012 08:04 | Просмотров: 3617 | Доход: 177.01 руб. | Комментариев: 2
[Программирование] 
Рейтинг: 3.5/2

Очевидно что SSL зверь прожорливый, но на сколько? Шифрование и дешифрование очень дорогая операция для процессора, а также для памяти которая расходуется на SSL-кэш. Сразу к делу, чтобы оценить нагрузку я набросал небольшой скрипт выводящий phpinfo и при 1000 итерация обратился к нему по http и https замерив время выполнения, нагрузку на процессор и потребление оперативной памяти. Сразу оговорюсь, я не являюсь экспертом в области ssl и если замер не корректен - пишите в комментах, предложите свой вариант.

<?php
function getPage($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

$st = microtime(true);
for($i=0;$i<=1000;$i++){
  $url = 'https: //localhost/test.php';
  $result=getPage($url);
}
$time = microtime(true) - $st;
echo $time."\r\n";
?>

Результаты поместил в таблицу:

Ресурс
https http
Время 19.0 секунд 3.28 секунд
Нагрузка на процессор 57% 43%
http vs https

Если замер был верным, то разница колоссальная! Учитывая что https запросы выполнялись значительно дольше, они еще активнее грузили процессор. В итоге http  по скорости обогнал https в 6 раз. В итоге на highload системах ssl может стать главным "тормозом". Немного погуглив я нашел несколько способов как с этим бороться. Во-первых за счет увеличения keepalive до нескольких минут можно резко сократить время коннекта при ssl, так как хендшейк обходится очень дорого. Также советуют сделать симлинк с /dev/random на /dev/urandom, что придаст производительности за счет того, что urandom неблокирующий. Я обязательно попробую эти и другие методы и опишу в следующей статье результаты.

 


© GM
| Комментировать статью |
  • Tiger +458 (04.12.2012 09:51)
    а можно подробнее о /dev/random и /dev/urandom
    | Ответить |
    • GM +2587 (04.12.2012 15:07)
      При random создаются только случайные байты из шумов, если пул пустеет, то чтение блокируется.
      http://ru.wikipedia.org/wiki//dev/random_%D0%B8_/dev/urandom
      | Ответить |