Learn about Centmin Mod LEMP Stack today
Become a Member

PHP-FPM 100% CPU usage centos 7

Discussion in 'Nginx, PHP-FPM & MariaDB MySQL' started by netheroez, Aug 7, 2017.

  1. netheroez

    netheroez New Member

    11
    1
    3
    May 3, 2017
    Ratings:
    +1
    Local Time:
    10:11 PM
    Please anyone help me how to fix php-fpm high resource.
    Server on SoYouStart
    32GB Ram
    OS CentOS 7.3-1611 (64bits)
    E3-SAT-3-32 Server - E3-1245v2 - 32GB - SoftRaid 2x2TB
    I don't really understand about nginx.

    [​IMG]

    Please fill in any relevant information that applies to you:
    • CentOS Version: CentOS 7 64bit
    • Centmin Mod Version Installed: 123.08stable
    • Nginx Version Installed: i1.13.3
    • PHP Version Installed: 5.6.30
    • MariaDB MySQL Version Installed: i.e. 10.0.21 or 10.1.21
    • When was last time updated Centmin Mod code base ? : Today
    • Persistent Config: No config
     
  2. RoldanLT

    RoldanLT Well-Known Member

    3,899
    949
    113
    May 25, 2014
    Phillipines
    Ratings:
    +1,298
    Local Time:
    11:11 PM
    1.11
    10.2
    What site script is hosted?
    How many site visitors do you have that time?
     
  3. netheroez

    netheroez New Member

    11
    1
    3
    May 3, 2017
    Ratings:
    +1
    Local Time:
    10:11 PM
    I use wordpress...
    Not much traffic.
    But i have install 60 wordpress. hehee

    Code:
    tail -10 /var/log/php-fpm/www-error.log
    [07-Aug-2017 03:38:27] WARNING: [pool www] server reached max_children setting (16), consider raising it
    [07-Aug-2017 04:10:30] WARNING: [pool www] server reached max_children setting (16), consider raising it
    [07-Aug-2017 04:55:37] WARNING: [pool www] server reached max_children setting (16), consider raising it
    [07-Aug-2017 05:13:43] WARNING: [pool www] server reached max_children setting (16), consider raising it


    What's mean?
    DO I raising the max_children setting ?
     
    Last edited: Aug 7, 2017
  4. Jimmy

    Jimmy Premium Member Premium Member

    1,114
    247
    63
    Oct 24, 2015
    East Coast USA
    Ratings:
    +596
    Local Time:
    11:11 AM
    1.13.x
    MariaDB 10.1.x
    :LOL:
     
  5. netheroez

    netheroez New Member

    11
    1
    3
    May 3, 2017
    Ratings:
    +1
    Local Time:
    10:11 PM
    hahaa is it funny ???
     
  6. Jimmy

    Jimmy Premium Member Premium Member

    1,114
    247
    63
    Oct 24, 2015
    East Coast USA
    Ratings:
    +596
    Local Time:
    11:11 AM
    1.13.x
    MariaDB 10.1.x
    Yes, that's a lot of sites. What did you expect to happen with that many sites installed on your server?
     
  7. netheroez

    netheroez New Member

    11
    1
    3
    May 3, 2017
    Ratings:
    +1
    Local Time:
    10:11 PM
    Find some money.. :D
     
  8. Jimmy

    Jimmy Premium Member Premium Member

    1,114
    247
    63
    Oct 24, 2015
    East Coast USA
    Ratings:
    +596
    Local Time:
    11:11 AM
    1.13.x
    MariaDB 10.1.x
    Well, good luck.
     
  9. netheroez

    netheroez New Member

    11
    1
    3
    May 3, 2017
    Ratings:
    +1
    Local Time:
    10:11 PM
    Hi, how about my question ? Have idea ?
     
  10. Jimmy

    Jimmy Premium Member Premium Member

    1,114
    247
    63
    Oct 24, 2015
    East Coast USA
    Ratings:
    +596
    Local Time:
    11:11 AM
    1.13.x
    MariaDB 10.1.x
    Yes, less wordpress sites or bigger server.

    [​IMG]
     
  11. netheroez

    netheroez New Member

    11
    1
    3
    May 3, 2017
    Ratings:
    +1
    Local Time:
    10:11 PM
    With this server,

    E3-1245v2 - 32GB - SoftRaid 2x2TB

    How many possibilities should I migrate from 60 websites?
     
  12. Jimmy

    Jimmy Premium Member Premium Member

    1,114
    247
    63
    Oct 24, 2015
    East Coast USA
    Ratings:
    +596
    Local Time:
    11:11 AM
    1.13.x
    MariaDB 10.1.x
    Start with 1 go up from there. ;)
     
  13. eva2000

    eva2000 Administrator Staff Member

    30,151
    6,782
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,133
    Local Time:
    1:11 AM
    Nginx 1.13.x
    MariaDB 5.5
    That is php-fpm cpu load. Make sure all wordpress sites have caching working i.e. keycdn cache enabler, wp super cache etc to off load some load from php-fpm.

    Centmin Mod is provide as is, so short of scripted related bugs or issues, any further optimisation to the web stack components - nginx, php-fpm, mariadb mysql, csf firewall etc or web app specific configurations are left to the Centmin Mod user to deal with. So I do not provide any free support for such.

    Nginx 502 or 504 Bad Gateway Errors



    Bad gateway 502 /504 timeouts are usually related to Nginx timing out waiting on PHP-FPM to respond as PHP-FPM is overloaded or overwhelmed with requests, so may need to tune PHP-FPM values. It also maybe due to PHP-FPM in turn being queued and backed up waiting on MariaDB MySQL server to respond - so also need to look at MySQL.

    You'll need to tune your PHP-FPM settings with php-fpm main pool config file at /usr/local/etc/php-fpm.conf (overview of config files) and this is left up to end user to do but here's a thread for starters to enable php status page output outlined at

    Checking PHP-FPM etc logs



    You'll also need to check into your PHP-FPM, Nginx and MariaDB logs which you can find as outlined at How to troubleshoot Centmin Mod initial install issues

    Server logs include Nginx, PHP-FPM, MariaDB MySQL error logs as well as others. You can find your Centmin Mod install/menu logs at FAQ 7 and server logs at FAQ 19 at Centmin Mod FAQ (most up to date info in FAQ so always read that first). Spoiler tag below has info too but may not be up to date.

    Some of Centmin Mod's installed software will have their own access and error logs which maybe useful for diagnosing errors or give info, notes, or warning notices.

    Note: There's no support provided by me for diagnosing such errors which may occur for various reasons including misconfiguration of installed php/mysql scripts or applications.

    In SSH2 telnet you can use tail command to view the last X number of lines in the file.

    For example for viewing last 10 lines in the file for:

    For Nginx access and error logs:
    Code:
      tail -10 /usr/local/nginx/logs/access.log
      tail -10 /usr/local/nginx/logs/error.log
    
    For specific domainname.com access and error log:
    Code:
      tail -10 /home/nginx/domains/domainname.com/log/access.log
      tail -10 /home/nginx/domains/domainname.com/log/error.log
    
    For other system error logs located at /var/log:

    list /var/log files in ascending time order so the most recently modified files are at the bottom
    Code:
      ls -lhrt /var/log
    
    Code:
    total 2.7M
    -rw------- 1 root  root    0 Aug 29 15:33 tallylog
    -rw------- 1 root  root    0 Aug 29 15:33 spooler
    drwx------ 3 root  root 4.0K Aug 29 15:35 samba
    drwxr-xr-x 2 root  root 4.0K Aug 29 15:35 mail
    -rw-r--r-- 1 root  500     0 Oct  8 18:13 dmesg.old
    -rw------- 1 root  500     0 Oct  8 18:13 boot.log
    -rw-r--r-- 1 root  500     0 Oct  8 18:14 dmesg
    drwx------ 2 root  root 4.0K Oct  8 18:14 httpd
    drwxr-xr-x 2 root  root 4.0K Oct  8 19:08 php-fpm
    -rw-rw---- 1 mysql root 2.3K Oct  9 12:38 mysqld.log
    -rw------- 1 root  root 9.2K Oct 26 10:48 yum.log
    -rw------- 1 root  utmp  94K Nov  7 22:59 btmp
    drwxr-xr-x 2 root  root 4.0K Nov  8 00:00 sa
    -rw------- 1 root  root 269K Nov  8 21:39 messages
    -rw------- 1 root  root 110K Nov  8 23:08 secure
    -rw-rw-r-- 1 root  utmp  43K Nov  8 23:08 wtmp
    -rw-r--r-- 1 root  root 144K Nov  8 23:08 lastlog
    -rw------- 1 root  root  69K Nov  8 23:08 lfd.log
    -rw------- 1 root  root 332K Nov  8 23:08 maillog
    -rw------- 1 root  500  1.6M Nov  8 23:10 cron
    
    For PHP-FPM error log:
    Code:
      tail -10 /var/log/php-fpm/www-error.log
    
    and/or
    Code:
      /var/log/php-fpm/www-php.error.log
    
    For MySQL / MariaDB error log:
    Code:
      tail -10 /var/log/mysqld.log
    
    For CSF firewall LFD log:
    Code:
      tail -10 /var/log/lfd.log
    
    For Mail log:
    Code:
      tail -10 /var/log/maillog
    
    For Cron job logs:
    Code:
      tail -10 /var/log/cron
    

    How to edit php.ini and php-fpm configuration files ?



    Centmin Mod install created command short cuts outlined here to allow you to quickly edit your /usr/local/lib/php.ini file and your /usr/local/etc/php-fpm.conf file. Full list of command shortcuts below:
    • Edit php.ini = phpedit ( /usr/local/lib/php.ini )
    • Edit my.cnf = mycnf ( /etc/my.cnf )
    • Edit php-fpm.conf = fpmconf ( /usr/local/etc/php-fpm.conf )
    • Edit nginx.conf = nginxconf ( /usr/local/nginx/conf/nginx.conf )
    • Edit (nginx) virtual.conf = vhostconf - only edits /usr/local/nginx/conf/conf.d/virtual.conf not the additional vhost domain.com.conf files added later
    • Edit (nginx) php.conf = phpinc ( /usr/local/nginx/conf/php.conf )
    • Edit (nginx) drop.conf = dropinc ( /usr/local/nginx/conf/drop.conf )
    • Edit (nginx) staticfiles.conf = statfilesinc ( /usr/local/nginx/conf/staticfiles.conf )
    • nginx stop/start/restart = ngxstop/ngxstart/ngxrestart
    • php-fpm stop/start/restart = fpmstop/fpmstart/fpmrestart
    • mysql stop/start/restart = mysqlstop/mysqlstart/mysqlrestart
    • nginx + php-fpm stop/start/restart = npstop/npstart/nprestart
    • memcached stop/start/restart =memcachedstop/memcachedstart/memcachedrestart
    • csf stop/start/restart = csfstop/csfstart/csfrestart

    Troubleshooting Tools



    However, there's many linux tools and scripts that can help you figure out what was causing the load issues and when.

    Tools and commands you will want to read up on and learn for basic system admin tasks and troubleshooting.
    Notes:
    However, Centmin Mod users are free to help each other out and ask questions or give answers on this community forum. My hopes are that this community forum evolves so that more veteran long time Centmin Mod users help new Centmin Mod users out :)
     
  14. jscott

    jscott Member

    94
    14
    8
    Aug 13, 2015
    Ratings:
    +31
    Local Time:
    11:11 AM
    :dead::dead::dead:

    Yikes!! Thats a lot of Wordpress!!
    Wordpress is not a lightweight package, and it uses a LOT of MariaDB... For everything!

    Like EVA2000 said, check to see that you are doing as much caching as you can!! It looks like you have plenty of memory free, so use it!

    You should also try to determine just how much total traffic you have on your server.
    Splitting some of this traffic to another server is a good idea. Among other reasons, if your server dies, not all your sites go down, just the ones on THAT server.

    Yea, I bet!

    These are the threads created to process your requests. Maybe they need raised, but maybe not.
    Check your database usage.

    A little googling is a good thing...
    Look over this thread
    php5-fpm: server reached pm.max_children

    EVA2000 gave you a lot of resources to use in figuring out what is going on.

    Let us know how you are doing and feel free to ask questions, but you have a lot of work to do on this large installation.

    I seldom run more than a handful of sites on one server, then size the server to fit that load.
    Keeps the fallout from one server to a manageable level.

    Good luck
    -John Scott
     
    • Informative Informative x 1
  15. RoldanLT

    RoldanLT Well-Known Member

    3,899
    949
    113
    May 25, 2014
    Phillipines
    Ratings:
    +1,298
    Local Time:
    11:11 PM
    1.11
    10.2
    Be sure to configure each site with Full page caching.

    Try this config.
    Code:
    pm = dynamic
    pm.max_children = 24
    pm.start_servers = 8
    pm.min_spare_servers = 4
    pm.max_spare_servers = 16
     
  16. Jimmy

    Jimmy Premium Member Premium Member

    1,114
    247
    63
    Oct 24, 2015
    East Coast USA
    Ratings:
    +596
    Local Time:
    11:11 AM
    1.13.x
    MariaDB 10.1.x
    I'd love to see the results from mysqltuner.