关于hyperf官方镜像构建运行环境,运行代码。ab压测Qps直接腰斩的疑问

首先申明。我自己做的压测,其中有些问题没有考虑到,大家一起探讨,交流心得。
工具:ab压测工具。
环境:centos

关于hyperf官方镜像构建运行环境,运行代码。ab压测Qps直接腰斩的疑问

项目框架:hyperf1.1
mysql:5.6
redis:6.0
系统:4核心cpu 8gb内存

开始压测
第一种情况:不走nginx ,直接ip加端口
ab压测参数 ab -n 20000 -c 5000 xxx.x.183.233/app/v1/user/baseInfo/

关于hyperf官方镜像构建运行环境,运行代码。ab压测Qps直接腰斩的疑问
qps此时达到 15362.12 多次测试。上下浮动不超过1000
第二种情况 走nginx,反向代理本地的9601端口
ab压测参数 ab -n 20000 -c 5000 xxx.x.183.233/app/v1/user/baseInfo/

关于hyperf官方镜像构建运行环境,运行代码。ab压测Qps直接腰斩的疑问

此处qps降低到5000左右。多次测试基本如此。考虑到降低这么多,原因可以认为是nginx的原因。
多次测试,基本在5000qps左右浮动。
第三种情况:走nginx,本地9601关闭。启动四个docker容器。做本地负载均衡。权重一样。
nginx配置如下

关于hyperf官方镜像构建运行环境,运行代码。ab压测Qps直接腰斩的疑问

关于hyperf官方镜像构建运行环境,运行代码。ab压测Qps直接腰斩的疑问

ab压测参数 ab -n 20000 -c 5000 xxx.x.183.233/app/v1/user/baseInfo/

关于hyperf官方镜像构建运行环境,运行代码。ab压测Qps直接腰斩的疑问

可以看到4个镜像,这是qps降低到2000左右。甚至有时候只有1500多。考虑到用啦docker镜像。qps降低是正常的,估计在4000左右,但是实际情况比预想中的严重的多。

请问大家有遇到过这种情况吗?有什么优化方法。

最佳答案

统一回复一下。下午在hyperf群里和昕哥和一大帮小伙伴谈论的结论是。swoole和nginx的通信好像有一点问题。表现结果是只要通过nginx和docker也好,本地启动进程也好。qps都不高。暂时的优化方法只能调节项目的进程数目和nginx的进程数目优化这个问题。但是提升不大。后续友好的方法再发出来吧。暂时先这样。

3年前 评论
李铭昕 3年前
Fell-boy (作者) (楼主) 3年前
讨论数量: 5

统一回复一下。下午在hyperf群里和昕哥和一大帮小伙伴谈论的结论是。swoole和nginx的通信好像有一点问题。表现结果是只要通过nginx和docker也好,本地启动进程也好。qps都不高。暂时的优化方法只能调节项目的进程数目和nginx的进程数目优化这个问题。但是提升不大。后续友好的方法再发出来吧。暂时先这样。

3年前 评论
李铭昕 3年前
Fell-boy (作者) (楼主) 3年前

请问最后解决了吗。。我也遇到这个问题。。直接请求hyperf qps 2W左右,用nginx upstream 只有6000,这还是加上了keepalive的情况。不加keepalive只有2000qps

2年前 评论
Fell-boy (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!