云服务器 ECS Linux Apache 运行参考如何调整优化-问答-阿里云开发者社区-阿里云

开发者社区> boxti> 正文

云服务器 ECS Linux Apache 运行参考如何调整优化

2017-10-23 10:45:04 1660 0


问题描述



在使用 Apache 搭建网站时,经常会遇到因为访问量大,导致网站无法访问的情况。造成网站无法访问的情况有很多,例如服务器配置较低,无法承载当前的访问量。也有可能因为 Apache 的配置参数不够优化导致的。

问题分析



ECS Linux 系统下 Apache 的默认工作模式是 prefork MPM,使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。如果不做调整,访问量增大可能造成 Apache 崩溃的情况。

解决方案



具体使用哪种模式是在编译安装 Apache 时指定的。在编译的时候可以加入 —with-pem=(prefork|worker) 选项决定启用什么模式。可以使用 httpd -l 命令查看当前 Apache 的工作模式:

Apache 的如下配置参数对性能影响较大:
  1. StartServers          5MinSpareServers       5MaxSpareServers      10MaxClients          150MaxRequestsPerChild   0

建议做如下修改:
  1. $ vi /usr/local/apache/httpd/conf/extra/httpd-mpm.conf       StartServers         5       MinSpareServers      5       MaxSpareServers     10       ServerLimit       1024       MaxClients        1024       MaxRequestsPerChild  300

说明:
  • 这些参数是经验上的参数,具体是否有效,需要根据服务器的配置,访问量情况综合考虑。可以通过逐步调整参数,观察网站访问情况的方法是网站的性能达到最优。
  • MaxRequestsPerChild 参数还是必要设置为非 0,避免内存消耗殆尽而导致系统触发 OOM(Out Of Memory),导致应用系统异常,具体可以参考 Apache 官方文档说明

最后,重启apache生效:
  1. $ /usr/local/apache/httpd/bin/apachectl restart


更多信息



附一些参数的介绍:
  • ServerLimit默认的MaxClient最大是256个线程,如果想设置更大的值,就的加上ServerLimit这个参数。20000是ServerLimit这个参数的最大值。如果需要更大,则必须编译apache,此前都是不需要重新编译Apache。生效前提:必须放在其他指令的前面
  • StartServers指定服务器启动时建立的子进程数量,prefork默认为5。
  • MinSpareServers指定空闲子进程的最小数量,默认为5。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。
  • MaxSpareServers设置空闲子进程的最大数量,默认为10。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成”MinSpareServers+1”
  • MaxClients限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,你必须同时增大ServerLimit。
  • MaxRequestsPerChild每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。如果 MaxRequestsPerChild为”0”,子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
  • 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。


如果问题还未能解决,您可以到阿里云社区进行 免费咨询,或联系云市场商家 寻求帮助
取消 提交回答
全部回答(0)
相关问答

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 222927浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157032浏览量 回答数 145

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 643001浏览量 回答数 18

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256820浏览量 回答数 38

294

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 431567浏览量 回答数 294

248

回答

【史上最详细】阿里云ECS安装wordpress教程

爱映疯wp 2014-03-09 23:55:43 251124浏览量 回答数 248

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302550浏览量 回答数 249

40

回答

阿里云ecs从购买到环境搭建和建站!!(phpstudy一件包)

梦丫头 2014-07-29 20:51:49 162050浏览量 回答数 40

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 471169浏览量 回答数 24

13

回答

游戏云精彩帖汇总

nono20011908 2014-08-22 11:00:12 203599浏览量 回答数 13
+关注
boxti
12535
10037
文章
1327
问答
问答排行榜
最热
最新
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载