浅谈 VPS 小内存云主机 Apache 内存优化

By | 2014年3月10日

前一段时间把网站放到云主机上面,昨天用ApachBench进行了一下压力测试,后果很不乐观,内存溢出,物理内存和Swap全部被占满,MySQL直接关闭了,SSH连接不上去,只能到控制台去重启。

这也太不安全了,这不是把网站赤裸裸地放在那边给人家攻击吗?

于是百度Google了很多关于Apache内存优化方面的,貌似都是大家转来转去的,我也就吸收一下吧!反正我也不是很懂,就是自己胡乱闹着玩,随便修改一下参数,看着有点效果了就得瑟一下。

我的硬件配置是1U ,RAM1G,对于大访问量高并发,内存无疑是个瓶颈,所以先从Apache下手吧。

1.首先看一下Apache当前的模式,httpd -l 看一下加载的模块,我的模块中有preworker.c,也就是说是当前Apache处于preworker模式下。

2.然后找到配置文件httpd.conf,找到

<IfModule mpm_prefork_module>
ServerLimit 4096
StartServers 10
MinSpareServers 5
MaxSpareServers 20
MaxClients 4096
MaxRequestsPerChild 0
</IfModule>

这么一段,首先我们要了解各个参数的意义,看了很多文章,看了很多遍,我的大致理解如下: