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

时间:2022-04-04 20:40:29

由于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
    #服务器启动时建立的子进程数,默认值是”″。
    #MaxClients
    #允许同时伺服的最大接入请求数量.
    #MaxClients
    #任何超过MaxClients限制的请求都将进入等候队列
    #MinSpareThreads
    #最小空闲线程数,默认值是”″
    #MaxSpareThreads
    #设置最大空闲线程数。默认值是”″
    #ThreadsPerChild
    #每个子进程建立的常驻的执行线程数。默认值是25
    #MaxRequestsPerChild
    #设置每个子进程在其生存期内允许伺服的最大请求数量
    <IfModule worker.c>
    ThreadLimit
    ServerLimit
    StartServers
    MaxClients
    MinSpareThreads
    MaxSpareThreads
    ThreadsPerChild
    MaxRequestsPerChild
    </IfModule>

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

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

  • 【Corn】使用过alekseon/module-cleanrunningjobs 管理 Cron;
  • 【Toolbar】开启 PROFILER ;
    $_SERVER['MAGE_PROFILER']=;
    //或是 $_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