Apache 小内存VPS服务器优化

        使用apache的时候当服务器运行了一段时间之后就会发现服务器内存占用率居高不下。对于内存小的VPS服务器来说是一件让人头疼的事情。我在网上找了好久才找了这么一个办法,分享给大家。
编辑/etc/httpd/conf/httpd.conf 
找到将MaxRequestsPerChild的值改小一些。
下面是摘录的一段介绍:

控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。MaxSpareServers设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill掉一些多余进程。这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整为MinSpareServers+1。如果站点负载较大,可考虑同时加大MinSpareServers和 MaxSpareServers。MaxRequestsPerChild设置的是每个子进程可处理的请求数。每个子进程在处理了 “MaxRequestsPerChild”个请求后将自动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:1、可防止意外的内存泄漏。2、在服务器负载下降的时侯会自动减少子进程数。

StartServers 8 #服务启动是启动多少个进程
MinSpareServers 5 #最少要保留多少个进程(服务器空闲时)
MaxSpareServers 10 #最多可以启动多少进程(服务器空闲时)
ServerLimit 256
MaxClients 100 #同时可以处理的最大请求数,小于等于ServerLimit
MaxRequestsPerChild 500

其他部分参数介绍
KeepAlive 是否允许持续连接

MaxKeepAliveRequests 允许的持续连接的最大数

KeepAliveTimeout 持续连接在没有请求多少秒后切断

介绍几个命令:
查看当前有多少HTTP进程

ps -ef|grep http|wc -l

查看系统负载的命令,loadavg 大于1的情况系说明系统已经超负荷运行了。

cat /proc/loadavg

查看当前80端口的TCP连接数

netstat -ant | grep :80 | wc -l

查看当前系统运行状态

top
版权所有©艾克斯记事-转载文章请注明出处(带链接)

发表评论

电子邮件地址不会被公开。 必填项已用*标注