如何对512M内存的vps apache进行优化配置
来源: 日期:2015-01-08 01:18:37 点击:次
本文是对512M 内存并装有
操作系统(linux):CentOS 5.5 32位(并不是我说这个比较好,只是Cents我用得比较熟练)
- 内存:512M
- cpu:1G(1000MHz,
vps 实际有没有这个数,很难说) apache :2.2(建议低版本的,升级到高版本,毕竟旧版有很多问题,且性能也是高版本好点)
运行的主要是PHP程序,其他的不多说了,与本文关系不大。
首先,如题所说,本文所说的
以下内容均属于博主自己的见解,实际测试请根据你的服务器,程序及其他因素按需处理。
一般情况下,我们需要
一、对于
二、很有可能或必用到的模块有:
LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so
三、我粗略点了一下
模块加载这一块就说到这里,这个大家多百度,多用自然会识别出一些有用模块并渐渐屏蔽不使用的模块。
接下来,就是最为重要的perfork配置,也是困扰了我很久的问题,尽管参数就那么6个,那是却足以让你的
Timeout 30 KeepAlive On MaxKeepAliveRequests 80 KeepAliveTimeout 15 <IfModule prefork.c> ServerLimit 150 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 4000 </IfModule>
上面的代码就是要修改的,实际上我们是要修改perfork里在的参数,之所以将Timeout,KeepAlive等也写出来,是因为这个也是影响
Timeout是一个连接多少时间后断开,这个参数设置在30-60是一般的php程序都是适用的,至少要运行一些要占用大量时间的php程序,那么适当调高也是可以的,但请不要太高,否则会影响
MaxKeepAliveRequests 是一个连接最大的请求量,对于页面有较多的图片等元素,可以适当调高一点,对于一般的网页设置在80-120是足够的,我们就设置为100,如果设置太高会导致httpd长时间不能退出释放内存的。
KeepAliveTimeout 是当用户处理一次连接时,如果在该参数的时间内还有请求则会继续执行,不需要重新创建新的连接,直到达到MaxKeepAliveRequests的最大值才会退出。对于perfork模式下的,有人认为是将KeepAlive Off会比较好,但是对于绝大多数的网站都会不多不少有些图片元素,所以将该项打开,并将KeepTimeOut设置在2-5秒,不但有效提高服务器性能,也能加快页面打开速度。
接下来,就是正式进入perfork的参数设置了,不想服务器运行一会就内存占满的得看看哦。
首先是参数ServerLimit就是服务器最大支持同时连接的客户端,该值将决定下面参数MaxClient可以设定的值的范围。ServerLimit实际上只是起到一个限制的作用,并没有实际有作用,也许有,我就不知道了。实际上起到作用的是,MaxClient参数,但这个值又受ServerLimit的限制,等下会讲。
另三个参数StartServers,MinSpareServers,MaxSpareServers,为什么将这三个参数一起说呢,因为这三个数是联系在一起的。这三个数都是决定空闲进程数量,StartServers应该范围就是MinSpareServers和MaxSpareServers之间。否则,
接下来就是MaxClient最大支持多少客户端在同一时间连接服务器,简单说就是最大并发数支持,这个没有特别需要说的。对于512M的
最后就是MaxRequestsPerChild参数,一个进程在处理多少次之后退出,设置为0则是无限次,也就是说不会退出,那么httpd进程也不会退出。那么,你就等着你的
所以对于512MB的
Timeout 30 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 2 <IfModule prefork.c> ServerLimit 150 StartServers 4 MinSpareServers 4 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 40 </IfModule>
这样,我们的配置基本完成,进行负载测试即可。负载测试,我们使用ab测试,先声明一点,是用你本地的虚拟机去测试服务器上的一个静态页面,而不是在服务器上测试。之前,我就是这样做,因为网速一样,效果都是比较好的,但别人都是不同网速的,所以服务器上测试是不准备的。
文章关键词:,厦门网站建设,厦门网站制作,科的电子
相关新闻