magento 因爲Httpd進程增多,致使CPU佔用100%問題

因爲Httpd進程增多,致使CPU佔用100%問題 magento for version 2.2.3

前些天一直致使CPU沒法控制的增多問題。php

 

根據報錯我設置了以下內容:html

  • 【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要低得多。mysql

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

    用於分析錯誤的函數;nginx

  • 【Toolbar】使用了 mirasvit/module-profiler 來調試查看;
  • 【Toolbar】使用了 vpietri/adm-quickdevbar  來調試查看;
  • -其它

 

以上方案,只供參考。遇到問題請多參考Exception.php/debug.php 和 Apache/nginx/php-fpm/redis/mysql/other;git

更多資料請見:http://www.javashuo.com/article/p-eteoevbu-hy.htmlgithub

相關文章
相關標籤/搜索