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

Ubuntu系统下Nginx+PHP-FPM站点首字节响应延迟15秒求助

解决Nginx+PHP-FPM站点首字节响应延迟15秒的思路

从配置和进程状态入手排查

  1. 调整PHP-FPM进程参数
    从你的www.conf配置来看,pm.max_children设为5、pm.start_servers设为2,该数值在有并发请求时会导致请求排队等待空闲进程,直接拉长响应时间。建议根据服务器CPU核心数调整:

    • 2核CPU可尝试将pm.max_children改为10-20,pm.start_servers改为4-6,pm.min_spare_servers和pm.max_spare_servers对应设为2和8。
    • 修改后重启PHP-FPM:sudo systemctl restart php-fpm(根据PHP版本可能是php7.4-fpm等)
  2. 开启PHP-FPM慢日志定位脚本问题
    首字节响应慢大概率是PHP脚本执行耗时过长,开启慢日志可精准定位:

    • 在www.conf中取消slowlog和request_slowlog_timeout的注释,配置如下:
      slowlog = /var/log/php-fpm/www-slow.log
      request_slowlog_timeout = 2s
      
    • 重启PHP-FPM后,触发慢请求,查看日志即可找到耗时久的脚本或函数。
  3. 排查系统资源瓶颈
    从htop截图看CPU使用率不高,但需关注内存和磁盘IO:

    • 用free -h检查内存,若内存不足,PHP-FPM进程可能被OOM Killer频繁终止,导致请求反复创建进程增加延迟。
    • 用iostat -x 1查看磁盘读写状态,若磁盘IO过高,会拖慢脚本读取文件、数据库操作的速度。
  4. Nginx侧优化配置

    • 开启fastcgi_cache缓存动态内容,减轻PHP-FPM压力:
      fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=phpcache:10m max_size=10g inactive=60m use_temp_path=off;
      
      在站点location块中添加:
      fastcgi_cache phpcache;
      fastcgi_cache_valid 200 60m;
      fastcgi_cache_methods GET HEAD;
      
    • 调整FastCGI超时参数,避免等待超时:
      fastcgi_connect_timeout 30s;
      fastcgi_send_timeout 30s;
      fastcgi_read_timeout 30s;
      

额外排查方向

  • 检查站点数据库查询,用EXPLAIN分析是否存在未加索引的慢查询。
  • 测试服务器DNS解析速度,可临时切换为公共DNS(如8.8.8.8)验证是否是DNS延迟导致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:45:49