кількість робочих процесів nginx


23

Я налаштовую nginx для обслуговування інсталяції Drupal, і, здається, знаходжу конфліктну інформацію про налаштування робочих процесів nginx. Один сайт говорить, що вам потрібно два, один говорить, що вам потрібно п’ять, один говорить один на процесор ...

Як слід вибрати кількість nginx робітничих процесів? Якщо це має значення, це гостьовий VM на кластері VMWare, і я дав йому один віртуальний процесор.

Відповіді:


16

Nginx на відміну від Apache та іншого процесу на з'єднання веб-серверів. Він використовує один головний процес для запуску та моніторингу невеликої кількості робочих процесів, які фактично обробляють з'єднання. Моя рекомендація - почати з типової кількості працівників, яка дорівнює 1.

worker_processes  1;

Збільшити це потрібно буде лише в тому випадку, якщо ви виявите, що працівник nginx витрачає занадто багато часу, заблокованого на IO. Це не буде, поки воно не обслуговуватиме багато сотень запитів в секунду.

Ці налаштування також можуть бути корисними.

worker_rlimit_nofile 8192;

events {
    worker_connections  2048;
    use epoll;
}

1
Чи можете ви описати, для чого використовується "worker_rlimit_nofile 8192"?
Розробник Pixel

wiki.nginx.org/NginxHttpMainModule#worker_rlimit_nofile . Це доручає працівникові збільшити його уміл.
Дейв Чейні

15

У системах SMP слід розпочати принаймні nCPU-робочі процеси: на чотирьохядерних - чотири тощо. Це досить для проксі.

Якщо ви збираєтеся обслуговувати деякі сайти з великою кількістю статичного вмісту, було б краще додати більше працівників - по одному на диск.

Якщо ваша дискова підсистема погана або завантажується занадто високо, робочі nginx процеси можуть заблокуватися під час операцій вводу / виводу і не можуть обслуговувати інші запити. У цьому випадку слід збільшити кількість робочих процесів до якогось відповідного значення (може бути десятки) або додати трохи пам’яті для дискового кешу.

Погляньте на роздруківку "ps ax": працівники, які перебувають у стані "D", заблоковані. Збільшуйте до тих пір, поки не дістатиметься щонайменше процеси робітників nCPU.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.