Apache的mod_php还是FastCGI?哪个对Wordpress有好处?

rah*_*286 18 php apache wordpress fastcgi mod-php

我有关于在不同的配置中运行PHP的基本想法,如mod_php,cgi,FastCGI等.

在我的发现和测试中,我发现FastCGI略胜一筹.我最喜欢FastCGI对SuEXEC的支持.等等我不想再次进入基准测试业务.如果你上网,你会发现在每秒处理的请求数量方面,证明一种方式比另一种更快的人.那么它的好指标,但我对不同的因素感兴趣,这是我的问题......

  1. 运行PHP的哪种方法占用的内存较少?
  2. 另外哪种方法消耗内存几乎不变.我用mod_php看到我的服务器内存使用率每隔几秒就会在300MB到800MB之间波动.
  3. 但是使用FastCGI,来自服务器的第一个响应来得非常晚.我看到FastCGI每个网页请求有一个初始延迟.一旦服务器的第一个响应到达,其他项目,如图像,css,js加载速度相当快.
  4. 两种混合运行都可以吗?我在专用服务器上有5个站点.如果我使用mod_php运行少量并使用FastCGI休​​息,这样可以吗?
  5. 我确信我的服务器出现故障主要是因为mod_php的内存使用不当.我检查了所有脚本.有没有办法确保服务器上的内存消耗几乎保持不变?
  6. .htaccess的复杂性是否会显着影响内存使用?如果是,是否可以使服务器内存不足?
  7. apache MPM prefork/worker设置会影响内存消耗吗?它们是否同样影响mod_php和FastCGI模式?
  8. 当我运行"top"命令时,我看到apache(httpd)消耗大约40MB的内存.有许多httpd运行的实例.此外,FastCGI还会分配一些类似大小的进程.httpd进程的正常内存大小是多少?
  9. 当我在我们所有的网站上运行Wordpress时,在这种情况下这将是一个好方法吗?
  10. FastCGI/SuExec与APC一起工作正常吗?我是否需要重新配置APC才能与SuEXEC和FastCGI配合使用.

请注意,我对DIGG或交通高峰的生存兴趣不大.我想要一种可以使服务器稳定和可预测的方法.

对不起,如果我很困惑,但我真的很乱.我有512MB物理内存,400MB交换和我的服务器疯狂的内存不足.平均内存需求大约为350MB,只是内存使用量激增使得内存几秒钟无法访问,如果在那几秒钟窗口中收到的额外点击很少,则apache在mysql和所有其他fellas运行正常时崩溃.

请帮帮我们.我不会买更多的RAM或硬件.我很确定问题出在我的配置中.对不起,如果我听起来傲慢或无知.

yha*_*ger 19

运行PHP的哪种方法占用的内存较少?

我假设根据PHP处理的请求它们或多或少相同.但是,如果你也将mod_php加载到apache服务图像中,那么我认为由于提供静态文件,你的内存占用率会更高.

另外哪种方法消耗内存几乎不变.我用mod_php看到我的服务器内存使用率每隔几秒就会在300MB到800MB之间波动.

你可以使两者保持不变.如果您仔细设置MaxClients,MinSpareServers和MaxSpareServers,您几乎可以知道正在运行的进程数.如果您还在PHP配置中设置memory_limit,则可以计算所需的内存量.你也可以为fcgi做同样的事情,因为你可以决定运行多少进程.

但是使用FastCGI,来自服务器的第一个响应来得非常晚.我看到FastCGI每个网页请求有一个初始延迟.一旦服务器的第一个响应到达,其他项目,如图像,css,js加载速度相当快.

这没有意义.我不确定为什么会发生这种情况.

两种混合运行都可以吗?我在专用服务器上有5个站点.如果我使用mod_php运行少量并使用FastCGI休​​息,这样可以吗?

我想,但这既是维护的噩梦,也可能更难配置以节省内存.恰恰相反,我相信.

我确信我的服务器出现故障主要是因为mod_php的内存使用不当.我检查了所有脚本.有没有办法确保服务器上的内存消耗几乎保持不变?

如上所述配置内存和进程,并继续监视.

.htaccess的复杂性是否会显着影响内存使用?如果是,是否可以使服务器内存不足?

我不这么认为.每个目录.htaccess可以减慢速度,但除非Apache中有一些严重的错误,否则它不应该导致大量内存消耗.

apache MPM prefork/worker设置会影响内存消耗吗?它们是否同样影响mod_php和FastCGI模式?

它可能,但我建议远离工作者,因为PHP主要不是线程安全的.

当我运行"top"命令时,我看到apache(httpd)消耗大约40MB的内存.有许多httpd运行的实例.此外,FastCGI还会分配一些类似大小的进程.httpd进程的正常内存大小是多少?

最小30MB.上限取决于您的应用程序(我见过大约1GB的情况)

当我在我们所有的网站上运行Wordpress时,在这种情况下这将是一个好方法吗?

这可能是一个品味问题.我最近从apache转向nginx + fastcgi.它需要一些时间来习惯,但它确实运作良好.使用wordpress没有任何问题(即使没有超级缓存,这与Web服务器相关).

FastCGI/SuExec与APC一起工作正常吗?我是否需要重新配置APC才能与SuEXEC和FastCGI配合使用.

我没有使用suExec,但fastcgi与APC配合得很好.无需配置任何东西.

  • @yhager感谢您的详细回复.我还将我们的高流量博客网络移动到nginx + fastcgi + wp-supercache.反正有没有将APC添加到nginx + fastcgi + wp-supercache?它还会进一步提升性能吗? (2认同)
  • 只需安装APC并重启PHP即可.而且,是的,它会提升性能 (2认同)