大神求救,大神求救, 大神求救 NodeJS 在ab压测下的表现
最近公司的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多,完全懵逼了..............
大神们啊,能不能帮忙看一下,就一下下
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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.
那些动不动就C10K的,确实没必要.
远端压测,还需要考虑网络,考虑网络!!!