如何配置MySQL/PHP以减少内存使用?

Luc*_*lli 13 php mysql ubuntu memory-management virtual-machine

我需要使用LAMP在运行Ubuntu的VM服务器上使用尽可能少的RAM.是否有使用最小内存的已知提示?我已经设置了MySQL缓存/子缓存,但这没有多大帮助.

Mar*_*rkR 8

你应该做的是保留Linux,Mysql和PHP,但不要使用Apache.或者至少,停止在Apache中运行PHP进程.

您可能正在将Apache prefork模型与进程内PHP模块一起使用.这对于大多数工作负载的内存效率来说非常糟糕,因为即使对于刚才没有请求任何动态内容的HTTP连接,它也会保持繁重的PHP进程.

您要做的是使用另一个Web服务器(例如Nginx,但Apache也可以工作)并将PHP作为FastCGI守护程序运行.这很容易设置和谷歌搜索"PHP fastcgi"返回众多的例子.

然后,您可以使用运行PHP的少量固定数量的"重"进程(我认为每个核心不超过几个),但仍然具有运行实际应用程序的良好容量,因为"空闲"HTTP连接,例如那些服务保持活动或等待请求不会耗尽"繁重"进程,只会使用较轻的Web服务器进程.

使用有限分叉/少数进程的Web服务器可能更好 - 例如Nginx或具有不同线程模型的Apache.这与mod_php不兼容,这就是您需要将其作为FastCGI运行的原因.