• 世界杯相关保险:ATM提款被抢可理赔 2019-09-18
  • “三连冠”从何而来?恩施市领跑全省生态功能类县市揭秘 2019-09-16
  • 朝鲜军人敬了一个礼 特朗普看到后马上回了一个 2019-09-16
  • 北京市北京元之沃4S店【在线咨询】 2019-09-06
  • 指尖触碰 你我结缘丨浙江新闻4周年 我们再出发 2019-09-06
  • 聚焦十九大 专家解读:中国的大国外交彰显哪些理念? 2019-09-01
  • 【聚焦军博会】216个代表团2037个项目将亮相军博会 11大军工集团全部参展 2019-09-01
  • 聚焦机构改革:新部门接连挂牌 快速进入角色 2019-08-28
  • 二手房办证5个工作日搞定 2019-08-28
  • 218万游客在晋中市“粽”情过节 2019-08-22
  • 西安6月以来限购区域内无一家开盘,“摇号细则近日将出” ——凤凰网房产北京 2019-08-22
  • 晓港公园花卉馆南侧场地出租项目 2019-08-21
  • “三个90周年”系列秋收起义90周年纪念活动新闻发布会在昌召开 2019-08-11
  • 打造历史文化名城 “安宁记忆”项目启幕 2019-08-11
  • 罗品禧的专栏作者中国国家地理网 2019-08-10
  • 首页 > 精华文章, 编程学习记录 > WDCP内存优化相关的设置

    201701月16

    WDCP内存优化相关的设置

    作者:admin 0 Comments 发表评论

    曾道人新报跑狗 www.jmuag.tw 今天折腾了很久,就在研究怎么优化WDCP的内存。原因是买的小内存的vps总是担心内存不足,在后台看到1G的内存,很快就实际占用了好几百M左右。如果放多个网站,岂不是马上就内存不足了。在前面的文章中实际上也是担心VPS内存不足的问题://www.jmuag.tw/wdcp-duozhan.html

    虽然搞清楚了建立一个新的网站就要占用更多的内存和进程,但是还是不明白怎么进行优化。于是在度娘上找到,看到很多相关的资料,优化的关键与HTTPD进程的多少有关系,而这个东西又与下面几个量有关系:

    ServerLimit 、StartServers、MinSpareServers 、MaxSpareServers 、MaxClients、MaxRequestsPerChild

    这几个量的相关解释,我看了很多篇文章,但是没有一篇讲的透彻清楚的。

    先来看一个比较有代表性的解释:

    ServerLimit 最大客户数
    StartServers 服务器启动时建立的子进程数量
    MinSpareServers 最小空闲子进程数
    MaxSpareServers 最大空闲子进程数
    MaxClients 同一时间客户端最大接入请求的数量
    MaxRequestsPerChild 每个子进程在其生存期内允许伺服的最大请求数量

    类似上面的这种解释很多,但是都说的不够清晰??戳思父鲂∈钡耐献柿?,还是理解的很模糊,下面把我自己的理解记录下来:

    1,StartServers 服务器启动时建立的HTTPD进程数量,这个应该属于父进程

    2,MinSpareServers 最小HTTPD空闲进程数量,这个虽然是空闲的父进程,但是它是有作用的,它的存在能够减少请求突然到来时,HTTPD进程数量不够,产生新的HTTPD进程的时间。

    3,MaxSpareServers 最大HTTPD空闲进程数量,这个用来控制,如果空闲HTTPD进程太多,会占用掉大量内存空间。

    4,MaxClients 这个参量最难理解,我个人理解是,每个访客访问网站时,网站的HTTPD进程用来处理和访客的交互操作,而每个HTTPD的大小每个网站应该是有所区别的。这个MaxClients就代表了网站的HTTPD父进程的最大数量。比如每个HTTPD占用20M内存空间,你VPS的剩余内存空间是200M(剩余空间是指总的内存减去系统以及其它服务已经占用的内存),那么你的MaxClients应该只有200M/20M=10个。此时你最多只能设置为10,如果超过,那么VPS会调用硬盘空间作为内存不足的补充部分,但硬盘空间的访问速度实际上是很慢的,这样网站访问起来,就会有部分用户感觉很慢。如果你这个数值设置的很小,也会有问题,比如本来要10个HTTPD才能满足需求,但你设置为了8,那么如果有10人访问,就会有后面的2人访问会比较慢,等到前面的8人链接断开,这2人的访问才会快。(这里理解不清楚,不明白访客访问与HTTPD父进程和子进程之间的关系

    5,MaxRequestsPerChild 每个子进程在其生存期内允许伺服的最大请求数量,默认为0,则子进程不会自动销毁,这样子进程就可能占用内存越来越多,如果设置为1000,那么子进程在处理了1000个请求的时候会 被父进程自动销毁,从而产生新的子进程,这样内存消耗就降低了。(跟上面一样,不明白访客访问与HTTPD父进程和子进程之间的关系),但这里我也不明白怎么看子进程,还有子进程处理请求到底是处理的什么?

    虽然不太明白上面这些参量的意思,但是减小内存消耗确实知道怎么去控制了,比如我修改成这个样子时,内存消耗就比较大:

    <IfModule mpm_prefork_module>
    ServerLimit 128
    StartServers 5
    MinSpareServers 18
    MaxSpareServers 30
    MaxClients 128
    MaxRequestsPerChild 1000
    </IfModule>

    原因是,我设置了最小空闲HTTPD进程为18个,这样的话,就算没有人访问,最少也要18个空闲HTTPD进程在等待状态。如果你网站没什么流量,设置这么多的空闲HTTPD进程就完全是浪费,此时查看后台的实际内存占用情况,如图所示:

    实际内存占用截图

    而如果设置成下面这个样子,内存消耗就要小的多:

    <IfModule mpm_prefork_module>
    ServerLimit 128
    StartServers 5
    MinSpareServers 5
    MaxSpareServers 6
    MaxClients 128
    MaxRequestsPerChild 1000
    </IfModule>

    后台实测在200M左右:

    内存占用截图

    原因很简单,你设置的空闲HTTPD进程只有5个了,最多是6个,空闲HTTPD进程相差10多个,而上面两幅图都是在访客差不多的情况下截图的,访客产生的HTTPD进程应该是差不多的。这样就能减小后台的内存占用,不过如果短时间内流量暴涨,新的HTTPD进程只能一个个的产生,这样会降低访问速度。具体怎么样,可以自己测试,也可以查看蜘蛛的抓取记录平均耗时来了解端倪。

    而至于HTTPD是在什么样的情况下产生,什么样的情况下消失,我则弄不清楚了。

    推荐阅读相关文章:精华文章 编程学习记录

    本文地址://www.jmuag.tw/wdcp-neicunyouhua.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    本文目前尚无任何评论.

    发表评论

  • 世界杯相关保险:ATM提款被抢可理赔 2019-09-18
  • “三连冠”从何而来?恩施市领跑全省生态功能类县市揭秘 2019-09-16
  • 朝鲜军人敬了一个礼 特朗普看到后马上回了一个 2019-09-16
  • 北京市北京元之沃4S店【在线咨询】 2019-09-06
  • 指尖触碰 你我结缘丨浙江新闻4周年 我们再出发 2019-09-06
  • 聚焦十九大 专家解读:中国的大国外交彰显哪些理念? 2019-09-01
  • 【聚焦军博会】216个代表团2037个项目将亮相军博会 11大军工集团全部参展 2019-09-01
  • 聚焦机构改革:新部门接连挂牌 快速进入角色 2019-08-28
  • 二手房办证5个工作日搞定 2019-08-28
  • 218万游客在晋中市“粽”情过节 2019-08-22
  • 西安6月以来限购区域内无一家开盘,“摇号细则近日将出” ——凤凰网房产北京 2019-08-22
  • 晓港公园花卉馆南侧场地出租项目 2019-08-21
  • “三个90周年”系列秋收起义90周年纪念活动新闻发布会在昌召开 2019-08-11
  • 打造历史文化名城 “安宁记忆”项目启幕 2019-08-11
  • 罗品禧的专栏作者中国国家地理网 2019-08-10
  • 新时时财付通 辽宁乐透型c735官网 七星彩直播频道 北京时时的官网下载 快乐8注册网址导航 11选五中奖规则 新时时历史信息 2019年东方心经a图片 新新疆时时结果 重庆欢乐生肖怎样玩