Welcome! Log In Create A New Profile

Advanced

Re: nginx SSL offload в highload проекте

Илья Шипицин
August 23, 2012 02:10AM
22 августа 2012 г., 2:04 пользователь ShivaS <nginx-forum@nginx.us> написал:

> Добрый вечер,
>
> Возникла интересная возможность применения nginx в очень нагруженном
> проекте.
>
> Мы активно пользуемся Амазонон (ЕС2) и соответственно лоад балансером ELB,
> который на данном этапе делает оффлоад на SSL и общается с пуш серверами.
> Сервис достаточно большой, и на определенном этапе мы поняли, что ELB
> перестал справляться с нагрузкой, да и его вечное отсоединение соединений с
> пуш серверами уже надоело.
>
> Провели тестирование с nginx на одном из серверов в амазоне, которое
> показало неплохие результаты, но все уперлось в память.
> Значит надо много серверов с большим кол-вом памяти. На удивление, несмотря
> на SSL, процессоры вообще не напрягались и LA постоянно оставался < 1, что
> дает возможность брать сервера с большим кол-вом памяти, малым кол-во
> процессоров и экономить.
>

LA = Load Average, это показатель, который соответствует количеству
процессов, ожидающих ввода-вывода. При высокой дисковой нагрузке,
соотвественно упирается в потолок. В случае терминации SSL он и не
должен расти больше единицы.

>
> Система: 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;
> }
>


серьезный момент - сколько запросов делает один клиент ? если несколько (в
нашей ситуации в среднем 5), то очень серьезный выигрыш получается за счет
keepalive до клиента (у вас он не включен).

в SSL очень дорогой хендшейк, он идет на несимметричной криптографии,
keepalive позволяет уменьшить количество дорогих хендшейков. реально, CPU
падает в разы (если один клиент делает несколько последовательных запросов
и они попадают в одну keepalive-сессию)


>
> Стоит ли ставить много воркеров и малое кол-во коннекшенов на каждый или
> достаточно один и сразу выставить максимальное кол-во подсоединений? Диски
> не задействованы совсем.
>

один воркер может задействовать одно ядро. если воркеров меньше, чем ядер,
то сервер будет недонагружен.

с другой стороны, если у вас интенсивно используются механизмы, требующие
согласования воркеров между собой (например limit_req), то может быть
оверхед на согласование.

трассируйте, смотрите :-)



> Приведенные выше настройки использовались на сервере с 7ГБ памяти.
> каждый воркер берет память, а при 60кб на клиент, даже несколько сотен
>

версия nginx какая ? недавно пробегал патч (включенный в последние версии),
отключающий компрессию на уровне SSL, заметно снижающий потребление памяти.


> мегабайт при большом кол-ве серверов может дать некоторый выигрыш.
>
> Использую ssl ciphers AES256-SHA, для относительной надежности и скорости.
>

современные процессоры умеют AES-NI инструкции, в openssl они есть начиная
с 1.0.1 (или чуть раньше ?). мы такое тестили - отвал башки, в продакшен
скоро будем запускать. на амазоне - не знаю, там же Xen ? посмотрите на
/proc/cpuinfo, светится там AES ?


>
> стоит ли ставить OpenSSL 1.0.1? ECDHE не пользуем, да и тормознутый он
> (судя
> по бенчмаркам, которые мы гоняли) и в скорости обработки подсоединений и в
> объеме потребляемой памяти. Кроме этого, никаких преимуществ особо не нашел
> в 1.0.1
>

в 1.0.1 есть аппаратное ускорение AES.

ECDHE - не более тормознутый, он быстрее за счет того, что эллиптическая
криптография обеспечивает сопоставимую сложность при меньших ключах. вы
случайно не такого же размера ключи выбирали ?

у ECDHE минус в том, что он пока не очень поддерживается на стороне
клиента. но не в производительности.



> Может, там что-то и подкручено, но меня интересует в основном потребление
> памяти, а разницы с 1.0 в тестах не заметил
>
> Кеш выставил, но шансы что клиент переподсоединиться на тот же сервер -
> минимальны, но сотню мегов не жалко ;-)
>

ssl_session_cache ?
в приведенном конфиге ее нет.
покажите полный конфиг ?

>
> ну и sysctl соответственно тоже.
>
> Сейчас вот подумываем очень серьезно о полном переходе на nginx в качестве
> основного оффлоадера.
>

какая у вас нагрузка ?
мы держим 100-200к одновременных ssl-запросов на обычных серверах (и ни в
какой потолок не упираемся).


> Хотим на днях запустить полноценный продакшен тест (а может и финальный
> переход на nginx)
>
> Что еще можно подкрутить для уменьшения потребления памяти (если возможно
> вообще)?
>

GeoIP память тратит :-)
покажите nginx -V


> Может быть еще на что-то надо обратить внимание, без чего хорошего
> перформанс не достигнуть?
>
> Понимаю, что чудес наверно ждать не стоит, но вдруг кто сталкивался с
> чем-то
> похожим и не спал ночами ;-)
>
> И еще вопрос многоуважаемым разработчикам:
> Когда планируется (и планируется ли вообще) поддержка CyaSSL?
> Промелькнуло пару постов, что вроде уже тесты идут, и по слухам потребление
> памяти должно сильно упасть.
> Я в траке искал, но может не там...ничего не нашел
>
> Спасибо!
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,229967,229967#msg-229967
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx SSL offload в highload проекте

ShivaS August 21, 2012 04:04PM

Re: nginx SSL offload в highload проекте

VBart August 21, 2012 07:00PM

Re: nginx SSL offload в highload проекте

ShivaS August 21, 2012 11:26PM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 02:10AM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 03:05AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 03:28AM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 03:53AM

Re: nginx SSL offload в highload проекте

Igor Sysoev August 23, 2012 03:56AM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 04:23AM

Re: nginx SSL offload в highload проекте

Igor Sysoev August 23, 2012 04:32AM

Re: nginx SSL offload в highload проекте

Maxim Konovalov August 23, 2012 04:42AM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 04:45AM

Re: nginx SSL offload в highload проекте

ShivaS August 27, 2012 12:38AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 02:36AM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 03:32AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 03:44AM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 03:55AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 03:18AM

Re: nginx SSL offload в highload проекте

kav August 23, 2012 03:26AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 03:32AM

Re: nginx SSL offload в highload проекте

kav August 23, 2012 03:46AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 03:50AM

Re: nginx SSL offload в highload проекте

kav August 23, 2012 04:14AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 06:26AM

Re: nginx SSL offload в highload проекте

kav August 23, 2012 06:50AM

Re: nginx SSL offload в highload проекте

Alexandre Snarskii August 23, 2012 07:06AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 07:28AM

Re: nginx SSL offload в highload проекте

kav August 23, 2012 07:46AM

Re: nginx SSL offload в highload проекте

Alexandre Snarskii August 23, 2012 07:52AM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 08:16AM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 03:58AM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 12:16PM

Re: nginx SSL offload в highload проекте

Sergey Shepelev August 23, 2012 12:24PM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 12:25PM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 12:44PM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 01:37PM

Re: nginx SSL offload в highload проекте

Konstantin Gerasimenko August 23, 2012 12:24PM

Re: nginx SSL offload в highload проекте

ShivaS August 23, 2012 12:27PM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 12:46PM

Re: nginx SSL offload в highload проекте

Konstantin Gerasimenko August 23, 2012 12:56PM

Re: nginx SSL offload в highload проекте

sergey.kobzar August 23, 2012 01:02PM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 01:02PM

Re: nginx SSL offload в highload проекте

Илья Шипицин August 23, 2012 01:04PM

Re: nginx SSL offload в highload проекте

VBart August 23, 2012 01:12PM

Re: nginx SSL offload в highload проекте

VBart August 23, 2012 01:08PM

Re: nginx SSL offload в highload проекте

Konstantin Gerasimenko August 23, 2012 01:50PM

Re: nginx SSL offload в highload проекте

KRED August 24, 2012 07:24AM

Re: nginx SSL offload в highload проекте

ShivaS August 24, 2012 12:12PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 166
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready