由于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>
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;