背景:提升laravel的api接口并发性能
涛哥mac硬件cpu2核8g内存,使用wrk来进行压力测试,常用的压测工具诸如ab,wrk等
一、wrk压测工具
wrk -t4 -c200 -d30s –latency http://www.kydbk-admin.com/api/user
使用4个线程运行30秒,200个http并发
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 涛哥总结的wrk命令参数说明 -c, --connections: 总的http并发连接数(每个线程处理的连接数=总连接数/线程数) -d, --duration: 测试的持续时间,如2s(2second),2m(2minute),2h(hour),默认为s -t, --threads: 需要执行的线程总数,默认为2,一般线程数不宜过多. 核数的2到4倍足够了. 多了反而因为线程切换过多造成效率降低 -s, --script: 执行Lua脚本,这里写lua脚本的路径和名称 -H, --header: 需要添加的头信息, 比如. "User-Agent: wrk" --latency: 显示延迟统计信息 --timeout: http超时时间 #------------------------------------------------------------------------ 返回结果 Latency:响应时间 Req/Sec:每个线程每秒钟的执行的连接数 Avg:平均 Max:最大 Stdev:标准差 +/- Stdev: 正负一个标准差占比 Requests/sec:每秒请求数(也就是QPS),等于总请求数/测试总耗时 Latency Distribution,如果命名中添加了—latency就会出现相关信息 |
二、laravel6安装swoole扩展包
swoole扩展包:composer require swooletw/laravel-swoole
把vendor/swooletw/laravel-swoole/config中swoole_http.php和swoole_websocket.php复制到laravel的config目录中,根据需要修改配置
If using Lumen, append the following line to bootstrap/app.php:
$app->register(SwooleTW\Http\LumenServiceProvider::class);
三、安装swoole前后laravel的api接口性能对比
测试前提:使用4个线程运行30秒,200个http并发,对本地后端相同api接口进行测试
未安装swoole前:
安装swoole前,接口的QPS为每秒41个
安装swoole后:
安装swoole后,接口的QPS为每秒540个,并发性能提升了几十倍
nginx反向代理后有性能损耗,ip访问接口可达上万QPS
更多swoole实践教程待涛哥总结分享…
转载请注明:PHP笔记 » laravel安装swoole扩展性能提升几十倍wrk压测