Чем вредна блокировка рабочего процесса в nginx, и как наличие нескольких потоков позволяет решить эту проблему? - PullRequest
0 голосов
/ 17 июня 2020

Документация рекомендует:

установить sendfile_max_chunk на какое-то ненулевое значение, иначе одно быстрое соединение может полностью захватить рабочий процесс.

Разве не в этом смысл наличия множества рабочих процессов и одного главного процесса? Если один рабочий процесс заблокирован, остальные по-прежнему обслуживают событие ведущего l oop.

В нем также говорится, что с настройкой aio threads;

файлы можно читать и отправлять с использованием многопоточности (1.7.11), без блокировки рабочего процесса:

Я не понимаю, как это работает, несмотря на то, что я прочитал блог nginx о многопоточности . Означает ли это, что теперь у вас может быть несколько процессов master , каждый из которых выполняет свои циклы событий? Или рабочий процесс теперь может использовать возможности SMP машины? Похоже, что это комбинация распараллеливания на основе event-l oop и традиционных потоков. Благодарю за любую помощь.

...