Apache-2.2

Mysqld.bin 和 php-fpm 佔用了我所有的 CPU

  • November 24, 2014

mysqld.bin 和 php-fpm 佔用了我所有的 CPU。

這是top run 10次的輸出:https ://gist.github.com/two7sclash/5081188dd00e8fc6bfcb

我有足夠的記憶體和 CPU 用於負載(理論上),所以我不明白髮生了什麼。執行 OpCache 和一些交換空間等。

這是我的 opcache 設置:https ://wiki.bitnami.com/Components/PHP#How_to_install_OPCache_for_PHP.3f

zend_extension=/opt/bitnami/php/lib/php/extensions/opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

伺服器規格:AWS C3 Large(c3.large,3.75 GiB RAM,7 個 ECU)。

不確定這是否與我在這裡遇到的問題有關:https ://community.bitnami.com/t/is-xcache-responsible-for-site-hanging-upon-loading-new-php-files/26355

bitnami 的好人幫我解決了這個問題:https ://community.bitnami.com/t/mysqld-bin-and-php-fpm-eating-up-all-my-cpu-c3-large/27015/4 ?u=系統管理員

請注意,您有很多消耗資源的 PHP-FPM 程序。你有幾個選擇:

將 WordPress php-fpm 程序配置為在需要時自動啟動。您可以在 php-fpm/pool.conf 文件中添加此選項:

pm=ondemand

您還可以在以下文件中減少每個應用程序的 php-fpm 程序數:

php/etc/common-dynamic.conf

pm=dynamic
pm.max_children=5
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3

php/etc/common-ondemand.conf

pm=ondemand
pm.max_children=5
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3

“我有足夠的記憶體和 CPU 用於負載”——顯然你沒有。

要麼使目前工作負載適應可用資源,要麼擴展資源以適應工作負載。

“讓 OpCache 執行” - 調整 PHP 比僅僅啟用記憶體要復雜一些。這當然是一個起點,但您的下一步應該是檢查您的大小是否足夠大(與 APC 不同,opcache 不會驅逐陳舊或較舊的條目 - 當它已滿時,整個記憶體將被驅逐並逐漸重新填充)。

接下來檢查你是否有一個合理的 memory_limit 設置——太高和太低都會導致額外的 CPU 負載。

接下來分析和調試。

引用自:https://serverfault.com/questions/646101