IIS FastCGI 下的 PHP - 如何确定 InstanceMaxRequests 和 PHP_FCGI_MAX_REQUESTS 的最佳值

IIS FastCGI 下的 PHP - 如何确定 InstanceMaxRequests 和 PHP_FCGI_MAX_REQUESTS 的最佳值

我在 Windows Server 2012 R2 上的 IIS 8.5 中以 FastCGI 组件的形式运行 PHP 5.4(是的,我知道它很旧,需要升级)。在调整设置时,我读到了https://docs.microsoft.com/en-us/iis/application-frameworks/running-php-applications-on-iis/configure-php-process-recycling-behavior文章。

该文章建议设置InstanceMaxRequestsPHP_FCGI_MAX_REQUESTS10 000- 但它没有解释原因。是否有更好的策略来确定特定环境的最佳值,或者按照文章所述将其硬编码为 10 000 是否安全?

我如何确定最好的InstanceMaxRequestsPHP_FCGI_MAX_REQUESTS价值观对于我自己的环境? 我如何确定我应该使用什么值?

答案1

我已经使用以下值运行了我的生产环境20 000至少 5 年没有问题。(我运行开发环境的值是200

问题实际上是:您希望(或需要)多久创建新的 PHP 进程来处理传入流量?如果您在日志中看到大量 HTTP 500 错误,请尝试降低此值。

将其设置得太低会导致一整天创建和销毁许多php-cgi.exe进程,这可能会导致处理请求时出现轻微延迟。将其设置得太高会导致内存泄漏长时间得不到控制,或者如果进程崩溃,可能会导致无法解释的 HTTP 500 错误(尽管我认为这不太可能)。

相关内容