股票

建立数据库连接时出错—Apache内存占用过大

文章目录

自从wordpress网站装好之后一直有个问题没有解决,就是进行网站测试的时候经常会出现“建立数据库连接时出错”,就算平常使用,网站被恶意攻击并发数太多的时候也会出现这个问题,导致网站打不开,而我并不知道网站已经挂掉了,结果一天没有流量。今天无意外的又碰到了这种情况,下决心要把它解决了。

网上各处找资料,终于查到了源头,原来是Apache的httpd进程数过多导致mysql被系统kill掉了。使用top命令查询系统内存使用情况,mysql固定占用10%,而httpd每个占用4-7%不等,如果并发数超过15个,很容易加起来内存使用超过100%,而mysql是最大的,理所当然被kill了。对网站进行压力测试,果然,内存使用一满,mysql就被kill。

下面讲下解决办法。

网上的教程都是修改apache下的httpd.conf文件,但是我这个系统不知道怎么装的,比较奇葩,在 /etc/apache2目录里并没有httpd.conf这个文件!开始我还专门创建了一个,按推荐的内容进行配置,但是发现根本没起作用。后来在另一篇文章发现,新的apache配置文件已经放在apache2.conf里面了,于是对这个进行更改。使用命令 sudo nano apache2.conf ,要修改的项为:

  1. Timeout 30  
  2. KeepAliveTimeout 2  
  3. <IfModule mpm_prefork_module>  
  4. StartServers          4  
  5. MinSpareServers       4  
  6. MaxSpareServers      8  
  7. MaxClients          10  
  8. ServerLimit         10  
  9. MaxRequestsPerChild   40  
  10. </IfModule>  

反正是整体都给改小了,保存后在进行压力测试,并发50的时候不会崩溃,并发100的时候就是很慢,但是mysql不会被kill掉了。

参考文章:

512M内存VPS运行wordpress出现”数据库连接错误”

Apache内存占用过大解决方案

打赏
原文链接:,转发请注明来源!

发表评论