Немного про nginx

babnicks
На сайте с 23.10.2009
Offline
47
#41
Lord Maverik:
Так какой набор параметров мне наиболее актуально поставить?

worker_connections = 16384

worker_processes = 4

:) И будет Вам счастье! Только проверьте, что при запуске nginx не ругается на кол-во максимально допустимых открытых файлов.

PS: worker_connections = 1024 при i7-920 и 8 GB, это над Вами хорошо пошутили ;)

100% защита от спам-ботов (https://www.keycaptcha.com)
Lord Maverik
На сайте с 15.04.2003
Offline
471
#42
babnicks:
И будет Вам счастье! Только проверьте что при запуске nginx не ругается на кол-во максимально допустимых открытых файлов.

Спасибо :) А как проверить то? В логе nginx?

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
babnicks
На сайте с 23.10.2009
Offline
47
#43
Lord Maverik:
Спасибо :) А как проверить то? В логе nginx?

При /etc/init.d/nginx start если не пишет, значит все ok.

Lord Maverik
На сайте с 15.04.2003
Offline
471
#44
babnicks:
При /etc/init.d/nginx start если не пишет, значит все ok.

Не, не пишет. Ну посмотрю теперь, как дело пойдет :)

N
На сайте с 06.05.2007
Offline
419
#45
ps: и все-таки я в тупняке, почему он (Сысоев) не сделал параллельные нити исходя из их независимой функциональности.

потому что он в отличие от вас, смотрит несколько шире стандартных программистских шаблонов.

Да, все пишут потоками. при разработке обычных графических программ это и проще и удобнее. Но когда дело доходит до десятков тысяч соединений, такое число потоков вызывает гигантские накладные расходы на саму поддержку этих потоков и на переключение контекстов процессора между потоками.

хотя, на самом деле, nginx тоже использует шаблон. просто менее известный. Можете, например, книжечку полистать Unix : разработка сетевых приложений. У.Р. Стивенс. - девять(!) разных моделей работы сервера.

Кнопка вызова админа ()
babnicks
На сайте с 23.10.2009
Offline
47
#46
netwind:
потому что он в отличие от вас, смотрит несколько шире стандартных программистских шаблонов.
Да, все пишут потоками. при разработке обычных графических программ это и проще и удобнее. Но когда дело доходит до десятков тысяч соединений, такое число потоков вызывает гигантские накладные расходы на саму поддержку этих потоков и на переключение контекстов процессора между потоками.

😂 Это Вы ко мне приложили свои шаблоны не поняв о чем я говорю 😂

Я имел ввиду не отдельные потоки для каждого соединения, ибо это действительно даст дикую нагрузку на менеджер процессов. Я говорил про потоки на уровне задач. Никаких десятков тысяч там-бы не было, просто есть несколько потоков, у каждого своя функциональность. Один отвечает за "отдачу" файлов с диска, другой за обмен с проксируемыми приложениями итд.

Особенно это актуально, когда в системе несколько проксируемых приложений и держать связь с ними в рамках одной нити, да еще той же самой, которая занимается работой с диском, имхо не так эффективно.

N
На сайте с 06.05.2007
Offline
419
#47

babnicks, даже если и так. краткий ответ - "это неэффективно по сравнению с используемой сейчас моделью".

pupseg
На сайте с 14.05.2010
Offline
364
#48

пять (!!!) страниц на простую тему!!

ставьте процессов 4-6 и 10тыс+ соединений и все будет работать!

если тормозит - покупайте еще железа! куда проще!

любой тюнинг софта дает в лучшем случае 10-20% прироста производительности. тюнинг кода - еще +10% в лучшем случае!

куда проще сервер памятью и процами набить, чем извращаться.

pupseg добавил 29.10.2011 в 19:28

а по большому счету - не нужно спрашивать на форуме - что поставить в эти директивы, нужно платить администраторам, что бы они исследовали проблему глубинно, а не только путем двух директив.

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
iHead
На сайте с 25.04.2008
Offline
137
#49
babnicks:
😂 Это Вы ко мне приложили свои шаблоны не поняв о чем я говорю 😂

Я имел ввиду не отдельные потоки для каждого соединения, ибо это действительно даст дикую нагрузку на менеджер процессов. Я говорил про потоки на уровне задач. Никаких десятков тысяч там-бы не было, просто есть несколько потоков, у каждого своя функциональность. Один отвечает за "отдачу" файлов с диска, другой за обмен с проксируемыми приложениями итд.

Особенно это актуально, когда в системе несколько проксируемых приложений и держать связь с ними в рамках одной нити, да еще той же самой, которая занимается работой с диском, имхо не так эффективно.

там намного сложнее все. в моем понимании основная работа перекладывается на ОС, например для отдачи файлов используется sendfile, остается только следить за событиями.

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
babnicks
На сайте с 23.10.2009
Offline
47
#50
netwind:
babnicks, даже если и так. краткий ответ - "это неэффективно по сравнению с используемой сейчас моделью".

не убедительно :) если отборсить авторитет Сысоева, то не убедительно...

iHead:
там намного сложнее все. в моем понимании основная работа перекладывается на ОС, например для отдачи файлов используется sendfile, остается только следить за событиями.

Это да, скорее всего так и есть, но nginx занимается проксированием (с хранением промежуточных данных), строит rb деревья (не разбирался для чего, но в исходниках есть) и много чаго еще делает... Делать эти задачи в отдельных нитях весьма логично.

Я думаю что эффект от создания такого функционального распараллеливания скорее всего был бы, но это усложнило бы и код и процесс отладки, а выйгрышь возможно был не более 5%

Возможно поэтому пока и не сделал, может и сделает когда-нить...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий