Помощь - Поиск - Пользователи - Календарь
Полная версия: 100 процессов nginx на одном сервере?
Онлайн-форум hostobzor.ru > Архив (темы до 1.06.2015). Только для чтения. > Коммерческий хостинг. Общие форумы > Выделенный сервер и co-location
Orliha
Стоит сервер у хостера. Сервер администрируют специалисты хостера.

Захожу и вижу что одновременно запущенно около 100 процессов nginx.

Вопрос специалистам: есть ли какие-то предпосылки для такого количества nginx-ов?

п.с.: В сутки менее 50к хитов на сервере.

Спасибо.
eSupport.org.ua
Нет, это ненормально
Обычно ставят по 1 процессу на физический CPU

support_host
Жесть. Этож надо было додуматься запустить сто воркеров. laugh.gif
Boris A Dolgov
Бывают ситуации, когда это просто необходимо.
Такой режим получил неофициальное название "Работа в режиме апача".
Яркий пример необходимости использования - когда модуль может на чем-то блокироваться, например на диске. Пример такого модуля - ngx_http_upload_module, при сохранении файла он блокирует процесс на диске, количество воркеров с ним должно быть как минимум N+1, где N - максимальное количество принимаемых файлов в один момент времени.
В случае, если nginx используется для отдачи файлов/проксирования, количество воркеров считают по формуле количество процессоров*количество дисков.
Orliha
Также подозрительно то, что апачей при этом от двух до пяти (количество плавает) - стоит MaxRequestsPerChild 1.
Хостер говорит что "MaxRequestsPerChild 1" необходимо для работы mod_diffprivs...

Это нормально? Пожалуйста, прокомментируйте.

(nginx прокси + Apache 1.3 + mod_php, в апаче 5 виртуальных хостов, сервачок полностью мой)



вот что говорит хостер на мои вопросы:

Цитата
Количество nginx такое, чтобы выдерживать нагрузку при большом числе диалапщиков.
Boris A Dolgov
Цитата(Orliha @ 01.10.2008, 18:28) *

Также подозрительно то, что апачей при этом от двух до пяти (количество плавает) - стоит MaxRequestsPerChild 1.
Хостер говорит что "MaxRequestsPerChild 1" необходимо для работы mod_diffprivs...

Это нормально? Пожалуйста, прокомментируйте.

(nginx прокси + Apache 1.3 + mod_php, в апаче 5 виртуальных хостов, сервачок полностью мой)
вот что говорит хостер на мои вопросы:

По поводу nginx'a в таком случае хостер категорически не прав.
По поводу apache не знаю, возможно.
MiksIr
Это кажись модуль, который у чайлда апача меняет uid на юзеровский. Слышал о такой схеме. Приходит запрос, определяется кому он, дропаются привилегии, запрос отрабатывается и чайлд убивается ибо иначе в следующий раз на него придет запрос для другого юзера уже.
В общем, рабочая схема, хотя с моей точки зрения кривоватая и сомнительная в плане производительности.

PS: про nginx согласен - много воркеров - это под специфичные задачи (или свои модули или особенности отдачи данных с диска или иной блокирующей среды). Про диалапщиков - это не то, что неверно, это просто диверсия - ибо основной задачей nginx-а перед апачем (особо когда нельзя напрямую с nginx отдать статику) является как раз возможность держать большое количество медленных коннектов одним воркером (процессом).
Arseny, Web Style
Цитата(eSupport.org.ua @ 01.10.2008, 17:18) *

Нет, это ненормально
Обычно ставят по 1 процессу на физический CPU


Наверное все-таки как минимум на ядро?
eSupport.org.ua
Нет, именно на CPU (камень)

alexxxst
Цитата(eSupport.org.ua @ 02.10.2008, 09:48) *

Нет, именно на CPU (камень)


Вообще-то на один физический диск рекомендуют один воркер smile.gif
Nginx ведь на дисках блокируется, а не на цпу smile.gif
eSupport.org.ua
Задачка:

Есть сервер с 2-я CPU и 5-ю дисками в RAID
Сколько нужно ставить воркеров? 2 или 5?


alexxxst
Цитата(eSupport.org.ua @ 02.10.2008, 12:45) *

Задачка:

Есть сервер с 2-я CPU и 5-ю дисками в RAID
Сколько нужно ставить воркеров? 2 или 5?


1.

Догадайтесь почему.
Boris A Dolgov
Цитата(eSupport.org.ua @ 02.10.2008, 09:48) *

Нет, именно на CPU (камень)

Категорически не согласен.
Core считается Kernel'eм отдельным Processor'ом, для каждого Core Kernel выделяет по нити aio, по таймеру и тд. А это - именно то, что нужно nginx'y, и поэтому целесообразно ставить воркеров по количеству ядер.
Даже на P4 с HT надо ставить 2 воркера, а не 1.

В случае, если 5 дисков в одном RAID, для операционной системы они будут выглядеть как один - значит, надо ставить 1*число_процессоров*число_ядер воркеров.

PS. "Core" и "Kernel" использовал, так как в русском они оба переводятся как "ядро"
eSupport.org.ua
Разработчик утверждает что надо именно по одному воркеру на камень...

Boris A Dolgov
Цитата(eSupport.org.ua @ 02.10.2008, 17:52) *

Разработчик утверждает что надо именно по одному воркеру на камень...

Не видел sad.gif
Посмотрел рассылку - нашел только это, Игорем не оспорено, значит достаточно истинно wink.gif
eSupport.org.ua
А я в рассылке видел имено от разработчика рекомендации - по числу железных камней

gylys
Элементарный эксперимент - процесор Core2Duo E6600, посещение сайта ~35000 уников, трафик около 150 ГБ в сутки. Nginx только для статики.
Меняем количество воркеров по очеереди с верху в низ 4 - 2 - 1. С 4 явное, около 25 - 30% завышение изпользования CPU. С 2 луше, с 1 ещё лучше.
kpv
Цитата(eSupport.org.ua @ 02.10.2008, 20:20) *

А я в рассылке видел имено от разработчика рекомендации - по числу железных камней

тема старенькая, но разве изменилось что-то с тех пор?
http://www.lexa.ru/nginx-ru/msg02429.html
Стандартный ответ такой:

Если весь сайт помещается в память сервера, к диску обращений нет,
и это выделенный сервер для nginx, то 1. Не будет лишних переключений
контекста. На images.rambler.ru так и сделано.

Если нужно ходить на диск, то 5-10 - это позволит обрабатывать
соединения процессами, незаблокироваными на диске.

Если используется select/poll, то 20 и более - для того, чтобы в
одном рабочем процессе было не больше 200-300 соединений.

> И, кстати, каково предельное значение?

Сейчас 1024.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.