zoukankan      html  css  js  c++  java
  • CentOS7 php-fpm内存占用问题排查

    1.问题排查

    前些日子阿里云服务器一直报内存占用过高的问题,后来就没了声息。我近期工作也比较忙,随便看了看业务还在正常运行,就没深入了解。后来服务器也不报警,就没管了。

    后来续费上去看了看了,好家伙怪不得没报警了。原来云监控插件都挂掉了。估计是因为内存占用过高,系统自动kill掉了云监控。在主机里面重新启动了云监控,内存直接就100%。

    开始排除问题。

    SSH登陆服务器,用free -m 再确认一下主机内存。

    1核2G内存的机子,内存直接就满了。这台机器上面部署着Nginx+PHP+Mysql服务,外加一个Dokcer,但是Docker并没有运行。正常来说内存是绰绰有余的。只能使用top而后Shift+M按内存使用进行排序,再进一步排查。

    发现是php-fpm开了太多线程了,直接挤爆了内存所致。

    2.着手解决

    找到 /etc/php-fpm.d/www.confpm.max_children默认是50,每一个进程占用1%-2.5%的内存,加起来就耗费大半内存了。所以我们根据需要修改为30。

    pm.max_spare_servers : 该值表示保证空闲进程数最大值,如果空闲进程大于此值,此进行清理 pm.min_spare_servers : 保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程;

    这两个值均不能不能大于 pm.max_children 值,通常设置 pm.max_spare_servers 值为 pm.max_children 值的60%-80%。

    最后,重启php-fpm

    systemctl restart php-fpm

    问题解决。

  • 相关阅读:
    快乐前端-图片预加载
    浅谈canvas绘画王者荣耀--雷达图
    浅谈CSS3动画的凌波微步--steps()
    车大棒浅谈jQuery源码(二)
    车大棒浅谈jQuery源码(一)
    车大棒浅谈for循环+canvas实现黑客帝国矩形阵
    浅谈JavaScript 函数作用域当中的“提升”现象
    清除浮动塌陷的4种经典套路
    可以看电影的微信公众号
    Mac安装protobuf编译Java
  • 原文地址:https://www.cnblogs.com/byuc/p/11149701.html
Copyright © 2011-2022 走看看