我有一个运行Ubuntu 8.10的Xen虚拟专用服务器(VPS),带有128M RAM.
我已经找到了几个“如何通过谷歌优化Apache和MySQL for low-memory VPS”页面,但它们提供了相互矛盾的信息.所以我问服务器故障:如何针对低内存VPS配置优化Apache和MysqL?
有几个人建议使用nginx而不是Apache.我会调查一下,但如果可能的话,我宁愿坚持使用Apache,只是为了避免在一个不熟悉的(对我而来的)Web服务器上学习所有关于配置应用程序堆栈的知识.
解决方法
Nginx很棒,但是如果你想坚持使用Apache,可以从默认设置中减去相当多的内容:
>使用worker MPM而不是prefork(使用worker MPM Apache不再具有“每个连接的进程”模型).>查看您正在加载的所有共享模块,删除任何您不需要的模块.>如果可以避免,请避免在Apache内部嵌入应用程序服务器(即mod_python,mod_PHP等).相反,在一个单独的进程中运行应用程序服务器并为它们安装Apache代理(即Python代码在守护进程模式下使用mod_wsgi).这样,只是提供静态内容的Apache线程不会不必要地膨胀.>在Apache配置中,减少StartServers,MaxClients,MinSpareThreads和MaxSpareThreads设置.根据您的预期负载,您有时可以将其从默认设置减少五倍或更多.