laravel10+octane(roadrunner)后的生产api性能提升压力测试

服务器环境

腾讯云ECS 标准型S5 2核2GB 1Mbps
ECS安装软件: PHP8.2 + Nginx + Mysql8.2 + Redis + Supervisor

Tips: 服务器软件搭建过程 传送门

闲时开发的一个项目,采用laravel框架,接口性能如预期般不满意。个人认为PHP项目接口响应慢主要在于两个因素:

  1. php-fpm 机制,每次请求会重新加载并执行一次文件(十几甚至几十个)
  2. 无数据库连接池,每次请求需要重新与数据库建立连接

数据库连接池经过一轮搜索了解已经放弃了。。。。。。

这里采用官方的提速方案 (Laravel Octane)

安装

composer require laravel/octane
php artisan octane:install --server=roadrunner

npm install --save-dev chokidar

--server 有3个可选值:frankenphproadrunner、 swoole

frankenphp 是 octane 最新支持的,实测(日期2024-04-15) frankenphp 不稳定,进程时不时就挂掉,所以改用 roadrunner。

chokidar 是监听文件重启服务用的。

启动

php artisan octane:start --host=127.0.0.1 --port=8484 --watch

这里命令在服务器直接执行没有问题,但是通过supervisor执行就总是提示npm、chokidar 未安装,全局安装及项目目录安装后都一样,无奈只能在supervisor的配置中去掉 --watch。

测试

测试直接使用apifox软件,获取 php-fpm、octane 在单用户、多用户情况下的实际表现。

这里的测试结果会比网上其它测试表现低很多,服务器配置差距是一方面,主要在于这里测试的是实际的业务接口,不能与空接口相提并论。

单用户请求

php-fpm 

octane 

 10个用户并发

php-fpm 

octane 

 20个用户并发

php-fpm 

octane 

测试统计
平均响应时间
1个用户
平均响应时间
10个用户并发
平均响应时间
20个用户并发
php-fpm486 ms6296 ms14353 ms
octane275 ms1390 ms7406 ms

总体来说,使用 octane 后,接口性能提升1~3倍,实际体验的提速效果还是比较明显的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxddt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值