在Linux Xen VPS上优化Apache和MySQL


10

我有一台运行Ubuntu 8.10,具有128M RAM的Xen虚拟专用服务器(VPS)。

我通过Google找到了几个“如何针对低内存VPS优化Apache和MySQL”的页面,但是它们提供了矛盾的信息。所以我问服务器故障:如何针对低内存VPS配置优化Apache和MySQL?


几个人建议使用nginx代替Apache。我将对此进行研究,但如果可能的话,我宁愿坚持使用Apache,只是为了避免不得不学习有关在不熟悉的Web服务器之上配置应用程序堆栈的所有知识。

Answers:


7

Nginx很棒,但是如果您坚持使用Apache,则可以将其从默认设置中缩减很多:

  • 使用工作程序MPM而不是使用前叉(对于工作程序MPM,Apache不再具有“每个连接的进程”模型)。
  • 查看您正在加载的所有共享模块,摆脱掉所有不需要的模块。
  • 如果可以避免,请避免将应用程序服务器嵌入Apache内(即mod_python,mod_php等)。相反,应在单独的进程中运行应用程序服务器,并为其使用Apache代理(即,对于Python代码,请在守护程序模式下使用mod_wsgi)。这样,仅提供静态内容的Apache线程就不会不必要地膨胀。
  • 在您的Apache配置中,减少StartServers,MaxClients,MinSpareThreads和MaxSpareThreads设置。根据您的预期负载,有时可以将它们从默认设置减少五倍或更多。

2

如果您有内存限制,建议您尽可能使用nginx作为替代。它消耗的内存比Apache少得多,并且取决于您的需要而已。

另外,nginx往往比Apache快得多。=)


2

沟渠apache,它的每个连接模型的进程都不会在内存不足的VPS上播放。

我建议使用nginx作为替代。


4
这仅是1.3版的问题。apache 2.x允许可插入的进程模块(包括MPM)在少数进程中运行许多线程。所有可调的口味
Vagnerr

是的,但是nginx仍然是一个较小的过程
Dave Cheney

2
是的,但这不是您所说的
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.