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

Laravel项目在Ubuntu上如何优化性能

时间2025-12-13 01:28:03发布访客分类主机资讯浏览898
导读:Ubuntu上Laravel性能优化实操清单 一 基础环境优化 使用最新稳定版 PHP 8.2+ 与必要扩展(如:php-fpm、opcache、mbstring、xml、curl、zip、gd、pdo、mysql),Web 服务器优先...

Ubuntu上Laravel性能优化实操清单

一 基础环境优化

  • 使用最新稳定版 PHP 8.2+ 与必要扩展(如:php-fpm、opcache、mbstring、xml、curl、zip、gd、pdo、mysql),Web 服务器优先 Nginx + PHP-FPM
  • 启用并正确配置 OPcache(生产建议关闭时间戳校验,变更代码后重启 FPM 或重置 OPcache):
    • 关键参数示例:
      • opcache.enable=1
      • opcache.enable_cli=1(便于 Artisan 等 CLI 优化)
      • opcache.memory_consumption=128–256
      • opcache.interned_strings_buffer=16
      • opcache.max_accelerated_files=10000
      • opcache.validate_timestamps=0(生产)
      • opcache.revalidate_freq=0(生产)
      • opcache.fast_shutdown=1
    • 重启服务:sudo systemctl restart php8.2-fpm nginx
    • 验证:php -i | grep opcachepublic/opcache-test.php 查看状态。
  • 提升系统承载能力:
    • 文件描述符:ulimit -n 查看,必要时在 /etc/security/limits.conf 提升 soft/hard nofile。
    • TCP 参数(减少 TIME_WAIT、提升并发):net.core.somaxconnnet.ipv4.tcp_max_syn_backlognet.ipv4.tcp_tw_reusenet.ipv4.tcp_fin_timeoutnet.ipv4.ip_local_port_range 等,修改后 sysctl -p 生效。
  • Web 层启用 HTTP/2Gzip/Brotli 压缩,Nginx 配置静态资源长缓存(如 expires 30d; add_header Cache-Control "public")。

二 Laravel应用层优化

  • 配置与路由缓存(生产):
    • php artisan config:cachephp artisan route:cachephp artisan view:cachephp artisan event:cache
    • Composer 优化:composer dump-autoload --optimize(或 -o
  • 缓存驱动与会话:使用 Redis(或 Memcached)提升命中率与并发表现:
    • .envCACHE_DRIVER=redisSESSION_DRIVER=redis
    • 安装与连接:Ubuntu 安装 redis-server,Laravel 安装 predis/predis
  • 队列异步化耗时任务:
    • .envQUEUE_CONNECTION=redis
    • 启动:php artisan queue:work --queue=default --sleep=3 --tries=3
    • 守护:用 Supervisor 保活队列进程(见下文示例)。
  • 数据库与 Eloquent:
    • 为高频查询字段建立合适索引,避免 N+1:使用 with() 预加载关联。
    • 合理使用缓存:Cache::remember()、页面片段缓存、查询缓存。
  • 前端资源:Laravel Mix 执行 npm run production 合并压缩;启用 CDN 加速静态资源。

三 高并发方案 Octane

  • 适用场景:需要更高 QPS 与更低 RT 的 API/后台。
  • 安装与启动:
    • 安装扩展:sudo pecl install swoole 并启用 extension=swoole.so
    • 集成:composer require laravel/octanephp artisan octane:install --server=swoole
    • 启动示例:php artisan octane:start --workers=$(nproc) --task-workers=2
  • 进程守护(Supervisor):
    • 示例 /etc/supervisor/conf.d/octane.conf
      • command=php /var/www/your-app/artisan octane:start --server=swoole --host=0.0.0.0 --port=8000
      • autostart=true、autorestart=true、user=www-data、stdout/stderr 日志路径
      • 执行:sudo supervisorctl reread & & sudo supervisorctl update & & sudo supervisorctl start octane
  • 调优要点:
    • workers 建议从 CPU 核心数 × 2 起步,结合内存与压测调整;设置 max_request 回收长生命周期可能的内存泄漏。
    • 启动时预热共享内存缓存(如配置、路由),减少首次请求开销。

四 队列与守护进程配置示例

  • 安装 Supervisor:sudo apt-get install supervisor
  • 队列 Worker 配置 /etc/supervisor/conf.d/laravel-worker.conf
    • [program:laravel-worker]
    • command=/usr/bin/php /var/www/your-app/artisan queue:work redis --queue=default --sleep=3 --tries=3 --daemon
    • autostart=true、autorestart=true、user=www-data
    • numprocs=2–4(按 CPU/负载调整)
    • redirect_stderr=true、stdout_logfile=/var/log/laravel-worker.log
  • 使配置生效:sudo supervisorctl reread & & sudo supervisorctl update & & sudo supervisorctl start laravel-worker:*
  • 常用命令:supervisorctl statustail -f /var/log/laravel-worker.log

五 监控与持续化优化

  • 性能分析:开发/预发使用 Laravel Debugbar、Blackfire 定位慢查询与 N+1;生产谨慎开启。
  • OPcache 监控与重置:
    • 安装:composer require appstract/laravel-opcache
    • 使用:php artisan opcache:statusphp artisan opcache:optimizephp artisan opcache:reset
    • 安全建议:为重置接口增加鉴权或仅内网可访问。
  • 压测与回归:上线前用 wrk 等工具进行并发压测,对比 RT、吞吐、内存 指标,逐步调优 OPcache、FPM、Octane、队列并发数

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


若转载请注明出处: Laravel项目在Ubuntu上如何优化性能
本文地址: https://pptw.com/jishu/771177.html
Laravel如何在Ubuntu上实现邮件发送 HDFS的扩展性如何设计

游客 回复需填写必要信息