You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移至Azure App Service与MySQL灵活服务器后WordPress站点极慢如何排查

问题排查与优化步骤
  • 拆解admin-ajax.php的耗时构成
    首先在WordPress配置文件wp-config.php中开启查询统计:添加define( 'SAVEQUERIES', true );,配合Query Monitor插件可直接查看单个admin-ajax请求中PHP执行耗时、数据库查询总耗时、每条查询的执行时间,定位是逻辑执行慢还是数据库查询慢。同时在Azure Database for MySQL Flexible Server控制台开启慢查询日志,设置慢查询阈值为1秒,匹配是否有未优化的慢SQL拖慢请求。
  • 验证App Service到MySQL的实际网络链路
    不要默认同区域就没有网络问题,首先确认MySQL的网络访问规则:如果MySQL开启了VNet访问限制,检查App Service是否已配置同VNet集成,避免流量绕公网传输导致延迟升高。之后登录App Service的SSH控制台,用mysql客户端直连数据库执行SELECT 1;测试单次请求的往返耗时,同时用mtr工具测试3306端口的链路抖动情况。另外检查是否开启了MySQL持久化连接,避免每次admin-ajax请求都重新建立数据库连接产生额外握手开销。
  • 检查Azure服务配置是否存在性能瓶颈
    1. MySQL侧确认innodb_buffer_pool_size参数配置,建议设置为实例内存的50%~70%,保证常用表数据能缓存在内存中,避免频繁读磁盘;
    2. App Service侧确认是否开启PHP OPcache扩展,未开启会导致每次PHP请求都重新编译脚本,产生不必要的耗时;
    3. 对比原虚拟机的磁盘IO性能,App Service默认使用网络存储,若站点有频繁的本地文件读写(如缓存文件生成、日志写入),会比本地磁盘有更高的延迟,可考虑将缓存、日志类操作迁移到Redis等内存存储中。
  • 针对性优化admin-ajax调用逻辑
    定位到admin-ajax对应的业务逻辑后,如果是高频且非实时的查询,可接入同区域的Azure Cache for Redis作为WordPress对象缓存,缓存查询结果避免每次请求都访问数据库;对于面向访客的无身份校验admin-ajax接口,可改为调用WordPress REST API并配置CDN/服务端缓存规则,直接返回缓存结果无需打到PHP后端。

内容的提问来源于stack exchange,提问作者Faye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:24:05