Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
nginx SSL offload в highload проекте
- To: nginx-ru@xxxxxxxxx
- Subject: nginx SSL offload в highload проекте
- From: "ShivaS" <nginx-forum@xxxxxxxx>
- Date: Tue, 21 Aug 2012 16:04:16 -0400 (EDT)
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tigger.jlkhosting.com; s=x; h=From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=ZyGOvAGL+7sqDz9Nbs/7eOZWrN2tLOIrK7hUUvExOi4=; b=ixzPpMeQghr0sVF+aNqejOUzlcm2/QTytR9BpYqcEPg5bQM3veLD4MIjM4/EoBO586JORKjgg41cZSnvIV3eByK9+Q3xt7jhv9a+dbaW1J+VfRUwTFF/LEOii3+9z8Ko;
Добрый вечер,
Возникла интересная возможность применения nginx в очень нагруженном
проекте.
Мы активно пользуемся Амазонон (ЕС2) и соответственно лоад балансером ELB,
который на данном этапе делает оффлоад на SSL и общается с пуш серверами.
Сервис достаточно большой, и на определенном этапе мы поняли, что ELB
перестал справляться с нагрузкой, да и его вечное отсоединение соединений с
пуш серверами уже надоело.
Провели тестирование с nginx на одном из серверов в амазоне, которое
показало неплохие результаты, но все уперлось в память.
Значит надо много серверов с большим кол-вом памяти. На удивление, несмотря
на SSL, процессоры вообще не напрягались и LA постоянно оставался < 1, что
дает возможность брать сервера с большим кол-вом памяти, малым кол-во
процессоров и экономить.
Система: CentOS 6; nginx 1.2.3
конфиг подправлял в паре мест.
Вот тут:
listen *:443 default backlog=4096 so_keepalive=30m::10;
И еще немного тут:
worker_processes 8;
worker_rlimit_nofile 204800;
events {
worker_connections 20000;
use epoll;
multi_accept on;
accept_mutex on;
}
Стоит ли ставить много воркеров и малое кол-во коннекшенов на каждый или
достаточно один и сразу выставить максимальное кол-во подсоединений? Диски
не задействованы совсем.
Приведенные выше настройки использовались на сервере с 7ГБ памяти.
каждый воркер берет память, а при 60кб на клиент, даже несколько сотен
мегабайт при большом кол-ве серверов может дать некоторый выигрыш.
Использую ssl ciphers AES256-SHA, для относительной надежности и скорости.
стоит ли ставить OpenSSL 1.0.1? ECDHE не пользуем, да и тормознутый он (судя
по бенчмаркам, которые мы гоняли) и в скорости обработки подсоединений и в
объеме потребляемой памяти. Кроме этого, никаких преимуществ особо не нашел
в 1.0.1
Может, там что-то и подкручено, но меня интересует в основном потребление
памяти, а разницы с 1.0 в тестах не заметил
Кеш выставил, но шансы что клиент переподсоединиться на тот же сервер -
минимальны, но сотню мегов не жалко ;-)
ну и sysctl соответственно тоже.
Сейчас вот подумываем очень серьезно о полном переходе на nginx в качестве
основного оффлоадера.
Хотим на днях запустить полноценный продакшен тест (а может и финальный
переход на nginx)
Что еще можно подкрутить для уменьшения потребления памяти (если возможно
вообще)?
Может быть еще на что-то надо обратить внимание, без чего хорошего
перформанс не достигнуть?
Понимаю, что чудес наверно ждать не стоит, но вдруг кто сталкивался с чем-то
похожим и не спал ночами ;-)
И еще вопрос многоуважаемым разработчикам:
Когда планируется (и планируется ли вообще) поддержка CyaSSL?
Промелькнуло пару постов, что вроде уже тесты идут, и по слухам потребление
памяти должно сильно упасть.
Я в траке искал, но может не там...ничего не нашел
Спасибо!
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,229967,229967#msg-229967
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|