首页主机资讯Laravel项目在Ubuntu上如何进行性能调优

Laravel项目在Ubuntu上如何进行性能调优

时间2025-12-19 00:05:04发布访客分类主机资讯浏览1360
导读:Ubuntu 上 Laravel 性能调优实操清单 一 基础环境优化 启用并正确配置 PHP OPcache(生产环境建议关闭时间戳检查,脚本更新通过部署流程重启 FPM 生效): 配置示例(php.ini): opcache.ena...

Ubuntu 上 Laravel 性能调优实操清单

一 基础环境优化

  • 启用并正确配置 PHP OPcache(生产环境建议关闭时间戳检查,脚本更新通过部署流程重启 FPM 生效):
    • 配置示例(php.ini):
      • opcache.enable=1
      • opcache.memory_consumption=256
      • opcache.validate_timestamps=0
      • opcache.max_accelerated_files=10000
    • 重启服务:sudo systemctl restart php{ version} -fpm
  • 使用 PHP-FPM + Nginx 替代 mod_php/Apache,减少进程开销、提升并发:
    • Nginx 关键配置片段:
      • fastcgi_pass unix:/run/php/php{ version} -fpm.sock;
      • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    • 检查并重载:sudo nginx -t & & sudo systemctl reload nginx
  • 调整 PHP-FPM 进程池(/etc/php/{ version} /fpm/pool.d/www.conf):
    • 模式选择:
      • static:设置 pm = staticpm.max_children ≈ CPU 核心数 × 4
      • dynamic:设置 pm.start_serverspm.min_spare_serverspm.max_spare_servers 以适配流量波动
    • 通用:pm.max_requests=**500~1000**(防内存泄漏累积)
  • 系统层面提升文件句柄与网络承载能力(/etc/security/limits.conf 与 /etc/sysctl.conf):
    • limits.conf:
      • * soft nofile 655360
      • * hard nofile 655360
    • sysctl.conf(按需微调):
      • net.ipv4.tcp_tw_reuse=1
      • net.ipv4.tcp_fin_timeout=30
      • net.ipv4.tcp_keepalive_time=1200
      • net.ipv4.ip_local_port_range=10240 60999
      • 应用:sudo sysctl -p

二 Laravel 应用层优化

  • 环境与配置:
    • .env 中设置:APP_ENV=productionAPP_DEBUG=false
    • 生成优化缓存:
      • php artisan config:cache
      • php artisan route:cache
      • php artisan view:cache
      • composer dump-autoload --optimize
  • 缓存与队列:
    • 使用 Redis 作为缓存与会话驱动(需安装 predis/predis):
      • .envCACHE_DRIVER=redisSESSION_DRIVER=redisREDIS_HOST=127.0.0.1REDIS_PORT=6379
      • 示例:composer require predis/predis
    • 将耗时任务(邮件、导入、图片处理等)放入队列,部署常驻 worker:
      • php artisan queue:work --daemon --tries=3
  • 数据库与 Eloquent:
    • 为高频查询字段建立合适索引,避免全表扫描
    • 解决 N+1 查询:使用 with('relation') 预加载关联
    • 对热点数据使用缓存:如 Cache::remember('key', 3600, fn() => ...)

三 并发与长驻进程方案

  • 使用 Laravel Octane(基于 Swoole/RoadRunner,显著减少框架重复启动开销):
    • 安装与启动:
      • composer require laravel/octane
      • php artisan octane:install
      • php artisan octane:start --workers=4 --task-workers=2
    • 注意:Octane 下部分文件/配置变更需重启 Worker 才生效
  • 队列与异步任务:
    • 选择 Redis 队列,配置失败重试与超时:
      • 队列配置示例:'retry_after' => 90
    • 多 Worker 并行消费:php artisan queue:work --queue=high,default --tries=3 --timeout=90

四 前端与传输层优化

  • 资源构建与压缩:
    • 使用 Laravel Mix 生成生产资源:npm run production
    • 启用 Gzip/Brotli 压缩(Nginx 层)
  • 传输与分发:
    • 启用 HTTP/2(Nginx 配置)
    • 静态资源使用 CDN 加速与缓存策略(Cache-Control、版本化文件名)

五 监控与迭代

  • 开发/预发环境接入 Laravel Debugbar 定位慢查询与 N+1,生产环境务必移除
  • 建立性能基线(如 TTFB、95/99 延迟、QPS、错误率),每次变更后回归对比
  • 结合业务特点持续做索引优化、缓存粒度调整与队列拆分(高优/低优队列)

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Laravel项目在Ubuntu上如何进行性能调优
本文地址: https://pptw.com/jishu/775673.html
Debian Overlay如何实现灵活配置 Ubuntu上Laravel如何实现负载均衡

游客 回复需填写必要信息