Назад | Перейти на главную страницу

Mysqld.bin и php-fpm съедают весь мой процессор

mysqld.bin и php-fpm съедают весь мой процессор.

Вот результат топ-прогона 10 раз: https://gist.github.com/two7sclash/5081188dd00e8fc6bfcb

У меня достаточно памяти и процессора для загрузки (теоретически), поэтому я не понимаю, что происходит. Запущен 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 ГиБ ОЗУ, 7 ЭБУ).

Не уверен, связано ли это с проблемами, которые у меня были здесь: https://community.bitnami.com/t/is-xcache-responsible-for-site-hanging-upon-loading-new-php-files/26355

«У меня достаточно памяти и процессора для нагрузки» - очевидно, что у вас нет.

Либо вы подстраиваете текущую рабочую нагрузку к доступному ресурсу, либо расширяете ресурс, чтобы он соответствовал рабочей нагрузке.

"Got OpCache running" - настройка PHP немного сложнее, чем просто включение кеша. Это, безусловно, отправная точка, но следующим шагом должна быть проверка того, что у вас достаточно большой размер (в отличие от APC, opcache не удаляет устаревшие или старые записи - когда он заполнен, весь кеш удаляется и постепенно повторно заполняется).

Следующим шагом будет проверка того, что у вас есть разумная настройка для memory_limit - слишком высокая и слишком низкая приведет к дополнительной загрузке процессора.

Следующее профилирование и отладка.

в этом мне помогли хорошие ребята из bitnami: https://community.bitnami.com/t/mysqld-bin-and-php-fpm-eating-up-all-my-cpu-c3-large/27015/4?u=sysadmin

Обратите внимание, что у вас есть много процессов 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