Hello! On Mon, Jun 02, 2014 at 03:32:06AM -0400, Brazzford wrote:
> Здравствуйте! У меня VPS с одно ядерным процессором. В конфиге Nginx > поставлено 2 worker'а. Когда я делаю тест с помощью AB, вижу, что всю > нагрузку принимает либо первый либо второй worker. Именно поэтому > рекомендуют запускать количество worker'ов равных числу ядер? Потому что > остальные задействованы не будут? А почему два worker'a не могут > распределить нагрузку между собой, работая на одном ядре процессора? Я знаю, > что одно ядро, в одно и тоже время может выполнять только один процесс, но > ведь существует переключатель процессов, который с одного процесса > переключается на другой... и я не могу понять почему у меня нагружается > только один worker. Помогите пожалуйста понять суть дела. По умолчанию nginx старается работать так, чтобы "пробуждалось" минимальное количество рабочих процессов - это позволяет экономить затраты на переключение контекстов и "лишние" пробуждения процессов. При реальной работе - в результате используется столько процессов, сколько на самом деле нужно для обработки той нагрузки, которая есть. Если хочется получить более ровное распределение в тестах - то имеет смысл: - accept_mutex выключить; - multi_accept, если вдруг включён, выключить; - убедиться, что тесты не используют постоянные соединения и/или количество устанавливаемых соединений так или иначе велико. Ссылки: http://nginx.org/r/accept_mutex/ru http://nginx.org/r/multi_accept/ru -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
