我无法弄清楚这个网站瓶颈的原因是什么,一旦大约400个用户达到了非常糟糕的响应时间。该站点位于Google计算引擎上,使用实例组,具有网络负载平衡。我们用sailjs创建了这个项目 我一直在使用kubernetes使用Google容器引擎进行负载测试,运行locust.py脚本。
其中一项测试的主要结果如下:
RPS : 30
Spawn rate: 5 p/s
TOTALS USERS: 1000
AVG(res time): 27500!! (27,5 seconds)
响应时间最初很好,低于一秒,但当它开始达到约400个用户时,响应时间开始大幅度增加。
我已经测试了影响响应时间的明显因素,结果如下:
计算引擎实例 (2 x标准-n2,200gb磁盘,ram:每个实例7.5gb):
Only about 20% cpu utilization used
Outgoing network bytes: 340k bytes/sec
Incoming network bytes: 190k bytes/sec
Disk operations: 1 op/sec
Memory: below 10%
MySQL的:
Max_used_connections : 41 (below total possible)
Connection errors: 0
MySQL的所有其他结果似乎都很好,没有理由造成瓶颈。
我为一个新的sailjs创建项目尝试了相同的测试,它做得更好,但仍然有可怕的结果,大约2000个用户5秒的res时间。
我还应该测试什么?可能是什么瓶颈?
答案 0 :(得分:3)
你在做任何文件阅读/写作吗?这是node.js中的主要障碍,并且总是会导致一些问题。应尽可能地缓存读取文件或删除对此类代码的需求。根据我自己的经验,当并发请求数量增加时,通过我的节点服务器提供图像,css,js等文件会开始造成麻烦。解决方案是通过CDN服务所有这些。
另一个问题可能是mysql驱动程序。我们遇到了一些连接未正确关闭的问题(不使用sails.js,但我认为他们在遇到此问题时使用了相同的驱动程序),因此它们会导致mysql服务器出现问题,导致数据获取时出现长时间延迟来自数据库。您应该计算/跟踪mysql查询的数量,并确保它们没有延迟。
最后,它可能是sails.js和Google计算引擎的一些特殊问题。对于您遇到的同一问题,您应确保其中任何一个都没有任何未解决的问题。