此方法不一定对所有vps有效,具体得看导致apache长期大量占用内存的原因是什么。当apache占用大内存时,可能导致mysql由于能够使用的内存不足而被强制kill掉。通常将内存512m的服务器视为小内存。但即使1.5g内存的服务器也可能出现以上情况。重要的是找到那个导致apache占用大内存的原因是什么。
配置文件 /etc/apache2/apache2.conf
重要参数
MaxClients 限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256.任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务.要增大这个值,你必须同时增大ServerLimit。优化的原则是,首先查看每个apache占用比,比如一个进程站3%,内存总大小是1G,则每个进程占30M左右,要使内存不至于被apache耗尽,则MaxClients的数量应该在1G/30M=33以下
MaxRequestsPerChild 每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束.如果MaxRequestsPerChild为”0″,子进程将永远不会结束内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成50、100、200,以防内存溢出。
另一个方面的优化是减少不必要启用的apache模块,Wordpress主要使用以下模块,其他模块可禁用
alais php5 authz_host log_config expires deflate headers setenvif mime autoindex dir rewrite negotiation
你可以使用下列命令来启用或禁用模块:
a2enmod 模块名
a2dismod 模块名
apache的模块位置在/etc/apache2/mods-enabled
以上设置完成后都需要重启apache服务才能生效service apache2 restart
参考链接
debian;ubuntu下apache2重定向模块的添加http://blog.chinaunix.net/uid-27155075-id-3446846.html
优化经验http://www.58vb.com/a155.html
WDCP中Apache的不合理配置与小内存VPS内存占用优化的一点经验http://www.58vb.com/a155.html
发表回复