mod_fcgid: многопоточный FastCGI сейчас или в будущем?

Факт до сих пор

Согласно «mod_fcgi НЕ является заменой mod_fastcgi» и «Проблемы с mod_fcgid и многопоточным приложением FastCGI », mod_fcgid, не предназначен ожидать, что серверы FastCGI смогут обрабатывать несколько запросов одновременно, т. е. не рассчитаны на многопоточность серверов FastCGI.

Первый говорит:

Оба они поддерживают опубликованный протокол FastCGI, но способы управления серверами FastCGI значительно различаются. mod_fcgid быстро устраняет серверы FastCGI и запускает новые.

Последний говорит:

похоже, что mod_fcgid не знает, что мой сервер многопоточный и может обрабатывать более одного запроса.

Это всего лишь две цитаты среди прочих, есть еще какие-то.

Последовательный выпуск

Потоки - это не только экономия ЦП и памяти, позволяющая избежать накладных расходов на создание нового процесса (известно, что создание потока легче, чем создание процесса), и это может быть уменьшено за счет производительности оборудования или ОС; это тоже логический вопрос, от которого труднее справиться: потоки принадлежат одному и тому же процессу, это не только производительность, но и логика, напр. процесс не может делиться тем, какие потоки могут совместно использовать, поскольку процесс выполняется изолированно (по модулю IPC, но это не то же самое).

По крайней мере, по этой логической причине может возникнуть вопрос о многопоточном сервере FastCGI. Сервер FastCGI может содержать контекст (который может быть большим и дорогостоящим для совместного использования между процессами), который является глобальным для всех обработчиков запросов, если он спроектирован как многопоточный сервер. Формирование нового процесса для каждого параллельного запроса больше не позволяет гарантировать общий контекст.

Вопрос

Верны ли две приведенные выше цитаты (одна датирована 2011 годом, другая 2010 годом)? Я поискал в Интернете по этой теме, но не нашел ничего подходящего. Если это по-прежнему верно, то всегда ли это будет правдой или есть ли ожидаемый план для mod_fcgid, чтобы знать о многопоточных серверах FastCGI и принимать, что они могут быть предназначены для обработки нескольких одновременных запросов?


person Hibou57    schedule 25.03.2013    source источник


Ответы (1)


Я не могу ответить на ваши точные вопросы о mod_fcgid, но Apache пошел дальше, и теперь предпочтительным методом в Apache 2.4 является использование mod_proxy_fcgi, http://httpd.apache.org/docs/trunk/mod/mod_proxy_fcgi.html.

Он обрабатывает несколько одновременных запросов. Обычно вы можете передавать запросы обработчику php-fpm.

person troseman    schedule 10.01.2014