开发者社区> 问答> 正文

wdcp v3下mysql挂掉的问题分析和解决办法

现在论坛上遇到很多MySQL挂掉的问题,一般都是服务器内存占用过高导致MySQL服务挂掉了。
贴图看下某人的MySQL挂掉时的服务器内存占用

看图:内存占用已经非常高了
这个时候你重启服务器,其实就是将内存重新释放了。
但是每次挂掉就重启服务器总不是很好。
解决办法就是增加内存或者增加虚拟内存
怎么增加虚拟内存,我也不懂,所以回帖中就不要问我怎么增加虚拟内存
你问了我也不知道,白问
————————————————————
当然,你说你内存本来就很大,还是会出现MySQL挂掉的情况
那么你检查下你的wdcp后台,切换web服务器为Apache或者nginx,不要用Apache+nginx的组合
如果还是会出现这个问题,那就检查下服务器程序进程,看下是哪些程序占用内存过高

展开
收起
franck 2017-02-16 16:13:11 3993 0
4 条回答
写回答
取消 提交回答
  • Rewdcp v3下mysql挂掉的问题分析和解决办法
    我的网站现在也是这个问题,目前的方法就是重启MYSQL
    2017-02-28 22:48:19
    赞同 展开评论 打赏
  • 这个就是我的MySQL,主要是httpd和MySQL,占用内存多,原来的1G,升级成2G的内存也是不行。今天搜索了一下,就按着下面的方法,修改了一下,我也不知道行不行,就试着修改,如果行的话,我回继续回来的。

    优化方法:

    通过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 每个子进程在其生存期内允许伺服的最大请求数量
    2017-02-19 10:58:44
    赞同 展开评论 打赏
  • 旺旺:nectar2。
    楼主您好,

    感谢您的经验分享喔。

    如果内存占用是由于mysql,或许也可以参考一下这个云友的应对方法: https://yq.aliyun.com/ask/48086
    2017-02-16 19:45:22
    赞同 展开评论 打赏
  • 解决方案工程师,负责为企业规划上云迁移方案和云上架构设计,在网站建设开发和云计算领域有多年经验,专注于Linux平台的系统维护以及应用部署。致力于以场景化的方式让云计算,用更加通俗易懂的方式让更多人体验云计算,让云端的计算更质朴的落地。
    2017-02-16 16:27:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像