我正在使用nodejs
编写一个后端应用程序,该应用程序执行许多对外部服务和http
的{{1}}请求。
我在单个kubernetes容器上达到了大约每秒800个请求。
该广告连播仅限于单个vcpu,使用率已达到100%。
我可以将其扩展到数十个pod,以处理数千个请求的执行,
但似乎已经达到极限了。
我已经在真实的后端应用中对其进行了测试,然后在演示容器上进行了测试,该演示容器仅使用s3
发送http
请求。
单个vcpu kubernetes吊舱只能处理800个请求/秒是否有意义? (作为客户端而不是服务器)。
答案 0 :(得分:0)
要为最佳方法提出任何建议,要为您的特定需求选择合适的计算资源容量,这是非常困难的。但是,当您在Pod限制请求中使用1x vCPU
时,对于最广泛使用的Cloud provider VM资源,它相当于1个CPU单位。
因此,我想在这里打赌,要比使用Kubernetes调度程序使用HPA(水平Pod自动缩放器)功能旋转更多具有相同数量vCPU
的Pod来增加更多的CPU单元。因此,如果节点上没有足够的容量,则很容易将很多Pod推入过载;确实这不会对Node计算引擎产生积极影响。
在您的示例中,有两个关键指标参数需要分析:等待时间(发送请求和接收答案的时间)和吞吐量(每秒请求){ 1}}个请求;这始终是最重要的规则:增加延迟会降低请求的整体吞吐量。
您还可以阅读有关Vertical Pod Autoscaler的信息,作为在Kubernetes集群中管理compute resources的选项。