IIS 7上的WordPress php-cgi占用CPU

zkw*_*ntz 7 php iis wordpress caching cgi

根据IIS.net的指南,使用WP-SuperCache在IIS 7(Windows Server 2008)上运行WordPress .

运行良好,但最近我们更改了一些文件夹和管理员密码的权限,我们的CPU使用率因PHP-cgi.exe进程而大幅增加.

CPU使用率

php-cgi.exe进程

这让我相信它不是缓存,但页面本身在底部有"缓存与WP-SuperCache"注释,并且缓存似乎正常工作.

这还有什么问题呢?

小智 10

我想我可能已经找到了解决方案或至少解决了这个问题,至少看起来它对我来说是可靠的.

尝试将IIS服务器 - > FastCGI设置下的"最大实例"设置设置为1.

在我看来,通常在更新帖子时,只有某些请求导致php-cgi.exe进程流氓并占用cpu.在阅读有关此问题的其他帖子时,其中一个提到了Max Instances设置,并将其设置为默认值为0或自动.我想知道如果事情不是这样的话,这可能会产生不好的效果.我猜测(但这不是我的专业领域)如果某个请求导致进程锁定,那么FastCGI只创建另一个,同时保留第一个.不知何故,似乎只有一个实例允许PHP从锁定继续运行并且cpu保持在控制之下.

对于具有高级别请求的服务器,将FastCGI设置为仅一个实例可能并不理想,但它肯定胜过我之前遇到的延迟.与WP-SuperCache和WinCache结合使用,现在看起来很好.

  • 我正在赞同这个答案,因为虽然它没有解决问题的根源,但它确实需要时间来整理根. (2认同)

Mar*_*own 1

查看该任务 mgr 看起来它在每个请求上都缺少缓存。另外,那篇文章的日期是 2008 年,所以很难说所写的说明是否仍然有效。WP-SuperCache 的某些内容可能会发生变化。

我建议使用 W3 Total Cache。我已经在 Windows Server 2008 和 IIS 7 上对其进行了大量测试,效果非常好。它还与 PHP 的 WinCache 扩展兼容并利用它。如果您感兴趣的话,它还有一些其他很棒的功能,例如缩小、CDN 支持等。它是 WordPress 的一个非常出色的性能插件。您可以在这里获取插件,http://wordpress.org/extend/plugins/w3-total-cache/

其他一些事情要检查...

应用程序池有多大?(进程数?)确保您使用的是 PHP 5.3。确保您使用的是 WinCache。确保将 MaxInstanceRequests 设置为小于 PHP_FCGI_MAX_REQUESTS。绝对不允许 PHP 处理应用程序池的回收。默认为 10K 请求。如果您在负载测试期间看到这些结果,那么这可能就是原因。增加 MaxInstanceRequests 并使其比 PHP_FCGI_MAX_REQUESTS 少 1。

希望有帮助。