Laravel在Ubuntu上运行缓慢怎么办
导读:Ubuntu上优化 Laravel 性能的实用步骤 一 快速定位瓶颈 确认运行环境:检查 PHP 版本与扩展(如 opcache、pdo_mysql、mbstring、curl、gd、zip)、Nginx/Apache 与 MySQL 版...
Ubuntu上优化 Laravel 性能的实用步骤
一 快速定位瓶颈
- 确认运行环境:检查 PHP 版本与扩展(如 opcache、pdo_mysql、mbstring、curl、gd、zip)、Nginx/Apache 与 MySQL 版本;确保使用最新稳定版可获得更多性能修复与优化。
- 开启性能分析:开发环境接入 Laravel Debugbar/Blackfire,定位慢请求、慢查询与 N+1 问题。
- 资源与连接:用 top/htop、vmstat 观察 CPU/内存/IO;用 netstat/ss 查看 ESTABLISHED/TIME_WAIT 连接数与端口占用,判断是否受限于连接或文件描述符。
- Web 层检查:确认已启用 HTTP/2、Gzip,静态资源走 CDN,减少首包与传输耗时。
二 应用层与 PHP 优化
- 关闭调试与缓存路由/配置/视图:将 .env 中 APP_DEBUG=false;执行:
- php artisan config:cache
- php artisan route:cache
- php artisan view:cache
- composer dump-autoload --optimize
- 启用并正确配置 OPcache(生产建议):在 php.ini 中开启
- opcache.enable=1
- opcache.memory_consumption=128(可按内存调大)
- opcache.max_accelerated_files=10000
- opcache.revalidate_freq=60(稳定版本可设更大,减少校验)
- 使用高性能进程模型:部署 Laravel Octane(Swoole),常驻内存避免重复加载;示例:
- composer require laravel/octane
- php artisan octane:install
- php artisan octane:start --workers=4 --task-workers=2
静态资源交由 Nginx 处理,动态请求反向代理到 Octane。
- 数据层与异步:用 Eloquent 预加载 with() 解决 N+1;为高频查询加缓存(如 Cache::remember);将耗时任务放入 队列(如 Redis/Beanstalkd)异步执行。
三 Web 服务器与网络优化
- 选择 Nginx + PHP-FPM,用 Unix Socket 通信,配置合适的 pm.max_children/start_servers/slowlog,并开启 OPcache。
- 启用 HTTP/2 与 Gzip/Brotli,提升并发与传输效率;静态资源使用 CDN 与强缓存策略。
- 典型 Nginx 路由示例:
- 将 location ~ .php$ 转发到 fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
- 静态资源设置 expires 1y; add_header Cache-Control “public, immutable”;
- 连接与内核参数(按需):提升 文件描述符限制(如 ulimit -n 65535 并在 /etc/security/limits.conf 设置),优化 TCP 队列与 TIME_WAIT:
- net.core.somaxconn、net.ipv4.tcp_max_syn_backlog 适度增大
- net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_fin_timeout=30、net.ipv4.ip_local_port_range 合理放宽
调整后执行 sysctl -p 生效。
四 数据库与队列优化
- 索引与语句:为高频 WHERE/JOIN/ORDER BY 字段建立合适索引;避免 **SELECT ***;分页使用 Laravel 分页 减少单次传输量。
- 连接与会话:将 CACHE_DRIVER/SESSION_DRIVER 设为 redis,降低后端压力与锁竞争。
- 连接复用:在 config/database.php 的 mysql 配置中启用 PDO::ATTR_PERSISTENT => true(注意连接状态管理)。
- 异步化:将邮件、导出、图片处理等耗时任务推入 队列,用 Supervisor 守护 queue:work 常驻消费。
五 系统与运维优化
- 基础维护:定期 apt update/upgrade;清理 APT 缓存、临时文件、日志(如 journalctl --vacuum-size=100M);必要时增加 Swap(如 fallocate -l 4G /swapfile 并启用)。
- 存储与电源:使用 SSD 并启用 fstrim(定期修剪);笔记本或台式机可启用 TLP 优化电源与性能平衡。
- 监控与压测:用 top/htop/vmstat/perf/strace 持续观察与定位瓶颈;上线前做 AB/ wrk 压测验证优化成效。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Laravel在Ubuntu上运行缓慢怎么办
本文地址: https://pptw.com/jishu/771180.html
