我在 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文章。
该文章建议设置InstanceMaxRequests和PHP_FCGI_MAX_REQUESTS到10 000- 但它没有解释原因。是否有更好的策略来确定特定环境的最佳值,或者按照文章所述将其硬编码为 10 000 是否安全?
我如何确定最好的InstanceMaxRequests和PHP_FCGI_MAX_REQUESTS价值观对于我自己的环境? 我如何确定我应该使用什么值?
答案1
我已经使用以下值运行了我的生产环境20 000至少 5 年没有问题。(我运行开发环境的值是200。
问题实际上是:您希望(或需要)多久创建新的 PHP 进程来处理传入流量?如果您在日志中看到大量 HTTP 500 错误,请尝试降低此值。
将其设置得太低会导致一整天创建和销毁许多php-cgi.exe
进程,这可能会导致处理请求时出现轻微延迟。将其设置得太高会导致内存泄漏长时间得不到控制,或者如果进程崩溃,可能会导致无法解释的 HTTP 500 错误(尽管我认为这不太可能)。