小编发现很多同学在使用阿里云服务器搭建PHP网站的时候会用到WDCP面板,用WDCP面板大家最为关注的就是WDCP所占用的内存,很多童鞋说目前最新版本的WDCP面板比较占用系统资源,尤其是占用内存较大。那么对于小内存的服务器和VPS我们该如何来优化WDCP所占用的系统资源呢?
优化环境:阿里云服务器Centos6.5 x64
环境配置:1个1核CPU,1G内存,2M带宽,20G系统盘,50G数据盘
web引擎:apache
当我们在阿里云服务器上安装完WDCP面板之后,首先我们看一下到底是什么导致占用内存过大,登陆阿里云服务器终端,通过以下命令查看各进程所占用的内存比例。
ps -aux
通过上面的命令我们来查看各进程所占用的内存比例:如下图
根据上图我们发现大部分占用内存的程序是httpd所导致的,针对这个现象我们来优化apache配置文件httpd.conf
优化方法:
通过wdcp后台找到需要修改的文件,文件路径/www/wdlinux/httpd-2.2.22/conf/httpd-wdl.conf
在httpd-wdl.conf中找到,这里就是apache在prefork模式下的参数段。将该段各值修改为以下数值:
<IfModule mpm_prefork_module> ServerLimit 256 StartServers 2 MinSpareServers 2 MaxSpareServers 5 MaxClients 256 MaxRequestsPerChild 50 </IfModule>
经过上述设置之后,httpd子进程数保持在最小2个,多余的进程在处理请求超过50个后自动销毁释放内存(这个数值不要设为0,否则http进程会一直不销毁),从而保证在正常流量下内存得以及时释放。这些数值可以根据需要适当调整,以适应内存大小。修改后重启apache服务生效。
各字段含义:
ServerLimit 最大客户数 StartServers 服务器启动时建立的子进程数量 MinSpareServers 最小空闲子进程数 MaxSpareServers 最大空闲子进程数 MaxClients 同一时间客户端最大接入请求的数量 MaxRequestsPerChild 每个子进程在其生存期内允许伺服的最大请求数量 注意事项:我们通过下图来正确辨别内存的使用率,只需要看实际的使用内存即可。
呵,备份一下WDCP的原始参数,别改不回来了:
<IfModule mpm_prefork_module> ServerLimit 1024 StartServers 5 MinSpareServers 3 MaxSpareServers 30 MaxClients 1024 MaxRequestsPerChild 0 </IfModule>