素材牛VIP会员
大神求救,大神求救, 大神求救 NodeJS 在ab压测下的表现
 qi***un  分类:Node.js  人气:699  回帖:2  发布于6年前 收藏

最近公司的node项目准备要上线了,所以要做一下压力测试。
架构采用express, 测试的页面 127.0.0.1/test 返回一个json

在本地mac下跑了一下, -n 10000/20000/50000 -c 100 压测的结果rps 基本在2000左右,虽然不知道这个结果算不算及格,但是感觉上还是挺快的。

我也在百度上看来很多关于node压测的文章,人家那个压测结果动不动就上万的。这个真心不知道怎么回事儿,万望解答!!!!!!!

而且在测试的过程中发现偶尔会不太稳定,到最后两轮压测的时候会出现超时的情况。
也是第一个问题
1、出现超时的情况是我node本身的问题,还是ab测试的问题?如果是node问题应该如何优化?如果是ab的问题,那么用什么压测工具比较稳定,而且贴近真实


我把程序放到阿里云上,阿里云的服务器好歹也是4核8G,但是服务器本地压测的结果还不如我的电脑,同样是测试方式, RPS基本也就是 1100左右,差了将近一半。后来我在服务器上还装了pm2 ,用pm2 开了两个进程的

但是测试的结果完全没有改变,而且我感觉在压测的时候,两个进程的CPU和内存并没有变化。完全懵逼了..............

第二个问题
2、pm2 说是可以负载均衡增加负载能力的,但是压测并没有提高,请问大神们能不能指点一下


最后我在本地的环境中通过另一台机器,用局域网访问我的本地服务,压测的结果也是比较意外。
还是同样的压测方式,结果RPS只有120多,完全懵逼了..............

大神们啊,能不能帮忙看一下,就一下下

 标签:ab测试node.js

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv6 码匠
xi***uX 站长 6年前#1

远端压测,还需要考虑网络,考虑网络!!!

Lv5 码农
青***0 软件测试工程师 6年前#2

你的测试结果我认为还是很真实的.
比方说,你在Mac上测试,RPS是2000,假设你的Mac的处理器核心数是4个,那么每个处理器的RPS就是2000/4=500,也就是1个处理器核心1秒处理500个请求,那么每个请求的耗时就是1/500=0.002秒/请求=2毫秒/请求.而每2毫秒处理一个请求,速度其实还是很快的,不信你自己打开你的浏览器去看看你访问你认为快的网站,看看它们的主请求的响应时间,你就知道2毫秒处理一个请求速度并不慢了.我自己用原生PHP写的Web程序,读请求的响应时间也能做到5毫秒以内的级别,环境是Ubuntu i5-3230M PHP(开启opcache).

你再参考一下Stack Overflow这种比较大型的网站的数据:
可见其每秒处理请求数RPS也才2424.

http://www.infoq.com/cn/news/2016/03/Stack-Overflow-architecture-insi
2016年02月09日数据:
HTTP请求数 209,420,973 (每秒处理请求数RPS=209420973÷(24×3600)=2424)
网页加载次数 66,294,789 (每秒处理PV数=66294789÷(24×3600)=767)
HTTP流量发送有 1,240,266,346,053 字节 (1.24 TB)
接收数据总量 569,449,470,023 字节(569 GB)
发送数据总量 3,084,303,599,266 字节 (3.08 TB)
SQL查询数(HTTP请求) 504,816,843
Redis命中数 5,831,683,114
Elastic查询次数 17,158,874
标签引擎请求次数 3,661,134
SQL查询耗时 607,073,066 毫秒 (168小时)
Redis命中耗时10,396,073 毫秒 (2.8小时)

那些动不动就C10K的,确实没必要.

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取