magento 由于Httpd进程增多,导致CPU占用100%问题

由于Httpd进程增多,导致CPU占用100%问题 magento for version 2.2.3

前些天一直导致CPU无法控制的增多问题。

 

根据报错我设置了如下内容:

  • 【Mysql】mysql.my.cnf 设置如下;
    #InnoDB需要innodb buffer pool中处理缓存。所以非常需要有足够的InnoDB buffer pool空间。
    innodb_buffer_pool_size = 2G

     

  • 【PHP】php..htaccess 设置如下;
    //当发生  Fatal error: Allowed memory size of 33554432 bytes 时,设置如下
    php_value memory_limit 2G

     

  • 【PHP】php./app/etc/.env.php 设置如下;
    //开发模式session为db存储;
      'session' =>
          array (
              'save' => 'db',
          ),
    
    //改在默认的file或redis
    ////--file
    'session' =>
       array (
         'save' => 'files',
         'save_path' => '/var/www/session',
    ),
    ////--redis
      'session' =>
          array (
              'save' => 'redis',
              'redis' =>
                  array (
                      'host' => '127.0.0.1',
                      'port' => '6379',
                      'password' => '',
                      'timeout' => '2.5',
                      'persistent_identifier' => '',
                      'database' => '0',
                      'compression_threshold' => '2048',
                      'compression_library' => 'gzip',
                      'log_level' => '1',
                      'max_concurrency' => '6',
                      'break_after_frontend' => '5',
                      'break_after_adminhtml' => '30',
                      'first_lifetime' => '600',
                      'bot_first_lifetime' => '60',
                      'bot_lifetime' => '7200',
                      'disable_locking' => '0',
                      'min_lifetime' => '60',
                      'max_lifetime' => '2592000'
                  )
          ),

     

  • 【Apache】php.htaccess 目录设置如下;(它建立在apache 模式为woker MPM)
    #StartServers
    #服务器启动时建立的子进程数,默认值是”3″。
    #MaxClients
    #允许同时伺服的最大接入请求数量.
    #MaxClients
    #任何超过MaxClients限制的请求都将进入等候队列
    #MinSpareThreads
    #最小空闲线程数,默认值是”75″
    #MaxSpareThreads
    #设置最大空闲线程数。默认值是”250″
    #ThreadsPerChild
    #每个子进程建立的常驻的执行线程数。默认值是25
    #MaxRequestsPerChild
    #设置每个子进程在其生存期内允许伺服的最大请求数量
    <IfModule worker.c>
    ThreadLimit         100
    ServerLimit         256
    StartServers         8
    MaxClients         1200
    MinSpareThreads     100
    MaxSpareThreads     300
    ThreadsPerChild     100
    MaxRequestsPerChild  0
    </IfModule>
    View Code

    prefork模式使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。

    worker模式使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器 上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。

  • 【Corn】使用过 alekseon/module-cleanrunningjobs 管理 Cron;
  • 【Toolbar】开启 PROFILER ;
    $_SERVER['MAGE_PROFILER']=1;
    //或是 $_SERVER['MAGE_PROFILER'] = 'html';

    用于分析错误的函数;

  • 【Toolbar】使用了 mirasvit/module-profiler 来调试查看;
  • 【Toolbar】使用了 vpietri/adm-quickdevbar  来调试查看;
  • -其它

 

以上方案,只供参考。遇到问题请多参考Exception.php/debug.php 和 Apache/nginx/php-fpm/redis/mysql/other;

更多资料请见:https://www.cnblogs.com/q1104460935/p/9220913.html

posted @ 2019-04-29 16:19  徐锅  阅读(798)  评论(0编辑  收藏  举报