如何修复运行 php 的 Windows 服务器上的 CPU 使用率 100% 的问题?

问题描述 投票:0回答:1

我正在 Azure 中的 Windows 服务器 (2019) VM 上运行 php。在该虚拟机上,我有 IIS v10、PHP v8.2.3 和 MySQL v8,运行多个 Wordpress 站点。在任务管理器和 perfmon 中,我看到可能有 3 或 4 个 fastcgi 进程正在运行,这些进程加起来使用 100% 的 cpu,并使我的 WordPress 网站速度减慢。这种情况会随机发生,持续时间长达 8 小时,然后几天后就会解决。我已经看到了这个问题的答案,但没有一个看起来合适或非常详细。我相当确定这不是 php 代码错误 - 我已经检查了 php 错误日志,但没有看到任何可能导致此问题的内容。谢谢你的帮助!!!这时候我就真的可以用它了!

php windows azure iis virtual-machine
1个回答
0
投票

每秒速率 = RPS

针对 Azure 门户、设置、服务器参数考虑的建议。

read_rnd_buffer_size=16384  # from 256K to reduce handler_read_rnd_next RPS of 12,934.
thread_cache_size=48  # from 10 to support 46 concurrent max_used_connections.
tmp_table_size=64M  # from ~ 640M for a more reasonable size.
max_heap_table_size=64M  # from 16M for best practice of always = tmp_table_size.

还有更多提高绩效的机会。查看我的个人资料。

观察, 我们通常不会在配置中同时看到 A) innodb_log_file_size 和 B) innodb_redo_log_capacity。最终,当 Azure 仅强制使用新名称时,innodb_redo_log_capacity 将取代 innodb_log_file_size。 select_scan 报告了 114,985 次全表扫描。适当的索引将减轻 CPU 的繁忙程度。 JetProfiler.com 有一个免费版本,可以帮助识别需要索引的表。

© www.soinside.com 2019 - 2024. All rights reserved.