本文面向 Laravel 10 的团队,目标是在零侵入或低侵入的前提下获得稳态吞吐与尾延迟优化。所有命令与参数均可在开发/生产环境按步骤验证,并附回归建议。


## 环境前提


  • PHP 8.2/8.3 与 Opcache(参考同分类文章的 `php.ini`)。
  • 缓存与队列:Redis 6/7(`phpredis` 或 `predis` 任一)。
  • Laravel 10(`framework` v10.x)。

## Redis 缓存与会话


`.env` 关键项:


CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_CLIENT=phpredis

`config/cache.php`:确保 `redis` store 配置正确;生产环境建议区分缓存与会话 db。


验证:


php artisan tinker --execute="cache(['k'=>'v'], 60); cache('k');"

## 路由与配置缓存


命令:


php artisan route:cache
php artisan config:cache
php artisan view:cache

注意:路由缓存要求闭包路由改为控制器;变更后需重新生成缓存。


验证与回滚:


php artisan route:clear
php artisan config:clear
php artisan view:clear

## 队列与 Horizon(可视化监控)


安装与运行:


composer require laravel/horizon
php artisan horizon:install
php artisan horizon

`config/horizon.php`:根据并发与作业耗时调整 `supervisors` 的 `maxProcesses` 与 `balance` 策略。


验证:投递一个耗时任务并观察处理速率与失败重试。


## Octane(Swoole/RoadRunner)


composer require laravel/octane
php artisan octane:install
php artisan octane:start --server=swoole --workers=8 --task-workers=8

适用场景:CPU 密集/高并发 I/O;与 FPM 相比可显著降低冷启动与重复初始化成本。务必确认扩展安装与兼容性(`ext-swoole`)。


## 生产发布与 Opcache 协同


  • 将 `opcache.validate_timestamps=0` 与发布流程绑定,在流量切换后执行 FPM reload 或 `opcache_reset()`。
  • Laravel 的 `compiled.php` 与缓存命令相互配合,减少文件扫描与解析成本。

## 压测与监控建议


  • 使用 `wrk`/`k6` 压测关键接口 60–120 秒,记录 `RPS` 与 `p95/p99`。
  • 采集 `Redis INFO` 与 Horizon 面板数据对比优化前后效果。
  • Octane 场景下对比 FPM 稳态 CPU 与内存占用。

## 注意事项


  • 路由缓存前需移除闭包路由;避免在缓存生成后修改 `.env` 导致配置不一致。
  • 队列的幂等性与去重设计需在业务层保障,避免重复消费导致数据问题。
  • Octane 下的单例与静态状态需确保请求隔离,避免数据污染。

## 相关文章(同分类热门)


  • [PHP 8 性能优化与 Opcache 与 FPM 调优:生产可验证实践指南](./PHP 8 性能优化与 Opcache 与 FPM 调优:生产可验证实践指南.md)
  • [Composer 2 与自动加载优化:PSR-4、Classmap 与 Opcache 结合实战](./Composer 2 与自动加载优化:PSR-4、Classmap 与 Opcache 结合实战.md)

## 结语


通过缓存与编译资产的协同、队列与 Octane 的合理使用,Laravel 10 能在现实生产环境实现稳定的吞吐与尾延迟优化。将上述步骤纳入发布与回归流程,建立可持续的性能基线。



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部