Mysqld.bin 和 php-fpm 佔用了我所有的 CPU
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 負載。
接下來分析和調試。