PHP как модуль thttpd против CGI с точки зрения использования памяти

StackOverflow https://stackoverflow.com/questions/230054

Вопрос

Я планирую использовать PHP во встроенной среде.Наш текущий веб-сервер — thttpd.Сейчас рассматриваю два варианта:запускать ли его как CGI или как модуль SAPI.Я знаю, что у CGI есть преимущество с точки зрения безопасности.Но если мы хотим использовать php в качестве cgi, экземпляр php должен загружаться в память для каждого запроса.

Я попробовал скомпилировать его как SAPI-модуль thttpd и заметил, что использование памяти thttpd, особенно rss, не увеличивается по мере увеличения количества запросов.

Может ли кто-нибудь объяснить, как thttpd загружает php?Загружается ли он только один раз и остается в памяти, пока работает thttpd?Если да, то мы можем рассматривать это как альтернативу cgi.

Выполняет ли он многопоточность, т.е.если одновременно выполняется несколько HTTP-запросов?или он обрабатывает запросы по одному?

Есть ли хорошая документация, в которой обсуждается поведение php как модуля thttpd?

Это было полезно?

Решение

У меня нет опыта работы с thttpd, но вот несколько советов:

  • движок PHP является потокобезопасным, но некоторые расширения нет, поэтому обычно люди избегают его использования в многопоточной среде и предпочитают использовать метод «один процесс — один запрос».
  • да, обычно модули веб-сервера (например, Apache mod_*) работают, оставаясь резидентными, но большим препятствием для PHP является то, что ему необходимо анализировать исходный файл (или даже несколько исходных файлов, если вы используете include/require) для каждого запроса.Вы можете сократить это, используя что-то вроде БТР который кэширует проанализированную версию файлов
  • существует также протокол под названием FastCGI, на который вы, возможно, захотите взглянуть — по сути, это нечто среднее между модулем и решением CGI — он запускает пару процессов, каждый процесс содержит один экземпляр проблемы CGI (в данном случае PHP) ) и использует их для обработки запросов.Экземпляры перерабатываются (т.они могут обрабатывать несколько запросов один за другим).
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top