apache 在低配置服务器下的优化

博主大清早在被窝里看看手机,浏览下博客,发现 Error establishing a database connection,显然是数据库挂了= =|||

貌似就是作死直接LAMP的下场(linux + apache +mysql + php)

博主立刻从床上弹起来,开电脑,重起mysql,就又可以了。

那么,虽然博主最近起不来→_→今天因为这个立马爬起来,但是总不能老是出错吧!

于是开启了优化方案。。发现是由于apache内存占用太高导致mysql没内存用了

由于囊中羞涩,之前买的是512MB的digitalocean (配置 512MB RAM/1 CPU )

之前重启了下mysql,过了一会儿用top监视一下资源使用:

这么快又剩下57MB内存了!(58664K / 1024 =57MB)optimizing-apache-for-low-memory-ram-vps-top-apache-use

必须要采取apche优化措施!

你可以先用下面的命令看看内存占用情况和进程内存占用排行:

  • free -m
  • ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less

 

 

apache优化

查看Httpd工作模式

  • apachectl -l

博主工作在prefork模式下

apache-word-on-prefork

于是打开 httpd.conf ,查看配置(vim /etc/httpd/conf/httpd.conf)

apache-prefork-configuration

这几个参数意思如下:

  • StartServers 8
    • 启动时默认启动的进程数
  • MinSpareServers 5
    • MinSpareServers指令设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以第一秒一个,第二秒两个,第三秒四个,按指数递增个数的速度产生新的子进程(最大32个/秒)。
  • MaxSpareServers 10
    • MaxSpareServers指令设置空闲子进程的最大数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。
  • ServerLimit      256
    • 配置的apache最大的并发响应数,对应的是apache的进程数
  • MaxClients       256
    • 设定Apache可同时处理的请求数量
    • MaxClients不得大于ServerLimit参数。
  • MaxRequestsPerChild  4000
    • 每个子进程理多少个请求后将自动销毁。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为”0″,子进程将永远不会结束

 

于是我们修改为:

  • StartServers 1
  • MinSpareServers 1
  • MaxSpareServers 5
  • ServerLimit      10
  • MaxClients       10

 

修改后,重启下apache即可

  • service httpd restart

 

优化后

优化后: 稳定在200MB以上

optimizing-apache-for-low-memory-ram-vps-top-apache-use-optimized

博主暂时先这么优化,观察一阵子,再考虑是否进一步优化

 

参考资料

这个资料还有mysql优化,apache去除多于模块等:

 

本博客若无特殊说明则由 hrwhisper 原创发布
转载请点名出处:细语呢喃 > apache 在低配置服务器下的优化
本文地址:https://www.hrwhisper.me/optimizing-apache-for-low-memory-ram-vps/

您的支持将鼓励我继续创作!

建站经验 , , . permalink.

10 thoughts on “apache 在低配置服务器下的优化

  1. hi博主你好,我刚开始也遇到了这个问题,请教下这里把数量调低以后会不会影响用户访问呢?我目前好像配置的都是50以上。
    另外我的服务器配置也比较低,1G内存吧,常常会占满。搞了个swap缓存只是保证服务器不蹦,用swap缓存的时候那个慢。。。

    • 流量不是特别大感觉不会。
      调小主要是对同时访问的有影响。一天的时间,用户也比较分散,用户数也不是那么大的话感觉OK。
      可以看看参考文献第一篇512MB RAM/1 CPU ,3个站点,每天10K个访问,只有 0.23%的出现超时。

  2. 自己不是本科就学cs的 最近刷题看到这个blog~
    觉得自己弄个服务器好赞的感觉?
    如果自己以后也想倒腾的话,需要怎么下手呢?需要哪些知识?

Leave a Reply

Your email address will not be published. Required fields are marked *