zoukankan      html  css  js  c++  java
  • Linux内存占用过高排查过程



        一朋友找我说,他们一个项目的服务器内存占用率太高了,让我帮忙看下怎么回事。我正好不是太忙就帮他看了下,并记录如下。

    1 查看服务器状态

        他的服务器是阿里云的ECS,系统是 CentOS Linux release 7.5.1804 (Core)
        使用top命令看了下系统的状态
        在这里插入图片描述

        系统的整体负载和cpu并不高,但是内存使用比较高(总8G使用了7.2G)。
        使用M按内存占用率排序
        在这里插入图片描述

    2 查看消耗内存最多的前40个进程

        ps auxw|head -1;ps auxw|sort -rn -k4|head -40
        在这里插入图片描述
        通过上图可以发现有很多php-fpm的进程,使用命令ps -ef |grep php-fpm: pool www|wc -l 查看这中进程的个数有159个
        在这里插入图片描述
        每个进程大概占用了50M,看来内存高的问题应该在于php-fpm池的子进程数过多的问题了。

    3 解决办法

        通过各种搜索,发现可以通过配置 pm.max_children 属性,控制php-fpm子进程数量,首先,打开php-fpm配置文件,执行指令:
        vi /opt/php/php7.2/etc/php-fpm.d/www.conf
        找到 pm.max_children字段将其修改为100(原来是300),同事将pm.start_servers 修改为30 (原来是100)。
        然后重启php-fpm systemctl restart php-fpm

        再次查看内存使用情况,发现内存使用降低了很多
        在这里插入图片描述

        同时使用命令查看php的进程数降低了很多
        在这里插入图片描述
        由于不是太了解php,解决方法非专业的,都是从网搜的,可能不是最佳方案。


  • 相关阅读:
    运行一个内核模块
    ubuntu下解析udt数据包
    在脚本中使用export导出变量值
    安卓手机已保存WiFi密码查看助手(开源)
    hashmap先按照value从大到小排序,value相等时按照key从小到大排序
    python画柱状图并且输出到html文件
    匀速圆周运动向心加速度推导
    简单证明圆锥体积为三分之一圆柱
    排列组合的一些公式及推导(非常详细易懂)
    相同字符串问题_题解
  • 原文地址:https://www.cnblogs.com/lcword/p/14361404.html
Copyright © 2011-2022 走看看