mysqld.bin 和 php-fpm 占用了我所有的 CPU。
以下是 top 运行 10 次的输出:https://gist.github.com/two7sclash/5081188dd00e8fc6bfcb
理论上来说,我有足够的内存和 CPU 来处理负载,所以我不明白发生了什么。OpCache 正在运行,还有几 GB 的交换空间等。
这是我的 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
答案1
“我有足够的内存和 CPU 来承载负载”——显然你没有。
您可以让当前的工作量适应可用资源,也可以扩展资源以适应工作量。
“让 OpCache 运行” - 调整 PHP 比仅仅启用缓存要复杂一些。这当然是一个起点,但下一步应该是检查它的大小是否足够大(与 APC 不同,opcache 不会驱逐陈旧或较旧的条目 - 当它已满时,整个缓存将被驱逐并逐步重新填充)。
接下来检查您是否对 memory_limit 进行了合理的设置 - 太高或太低都会导致额外的 CPU 负载。
接下来进行分析和调试。
答案2
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