使用部署在谷歌应用引擎灵活上的群集的node.js应用程序可以扩展,但流量始终会被发送到一个实例。
该应用程序使用群集模块来利用所有cpu,并且指定缩放度量的唯一方法是使用cpu_utilisation,因此我们这样做了。
缩放工作正常,一旦到达target_utilization,它就会生成另一个实例。
但问题是,无论有多少实例,相同的负载测试都需要完全相同的时间。这只能意味着流量不会在所有实例之间分配。
所以我想知道流量是不是总是在同一个实例,任何方式来证明或改进?
编辑:
负载测试只是一个常规的负载测试,第一个是20个线程,循环上升5秒,4次。
编辑2:
更新:现在似乎正在缩放。不确定我的代码库有多大变化,但路由也已正确完成。谷歌云平台更新可能已经解决了我的问题?
如果您在只有最小数量的实例的情况下开始测试,并且在测试它扩展时,测试之间的时间不会改变,因为扩展正在进行的是允许应用程序将请求数量与所需资源相匹配为他们服务,避免5XX错误。
如果您的测试正在生成spawn实例,那么这些实例正在工作,因为如果没有,它们会因为不需要而被杀死。扩展正在做的不是加快服务时间,它与在任何给定点提供X量请求所需的资源量相匹配,因此应用程序始终可以以相同的速度处理请求。
关于缩放的Buckors解释是正确的,但是,您仍应该看到负载测试的改进。检查实例是否实际获得分布式负载的快速方法是检查Stackdriver日志。
你可以去
Stackdriver - > GAE应用程序 - [服务名称]
然后,您可以看到您的服务正在处理/处理的请求列表。然后,您可以通过位于App Engine - > Instances下的云控制台上的各个App Engine Flex实例ID对其进行过滤,您将看到类似“aef-Service Name-alpha numeric”的ID
如果您的请求未正确路由,我建议您将问题发布在Private Issue中,Google Cloud工程师应该能够查看您的项目。