【问题标题】:What exactly is the http latency in pivot cloud foundary?Pivot Cloud Foundry 中的 http 延迟究竟是什么?
【发布时间】:2021-01-16 11:59:04
【问题描述】:
我正在为部署在 PCF 中的 Spring Boot 应用实施自动缩放策略。我读过使用内存对于 java 应用程序来说不是一个好主意,因为 java 不会经常向操作系统释放内存。
其次,PCF 不推荐使用 cpu 利用率指标。
所以我正在使用延迟指标来实施策略。现在我怀疑PCF中的http延迟到底是什么。是否像请求来响应所需的绝对时间一样。或者请求被确认的时间。它在被确认之前是否考虑了排队时间?有很多困惑。如果有人清除它,我可以以正确的方式实施自动缩放策略。
PS:任何其他关于自动缩放的建议都可以。
【问题讨论】:
标签:
autoscaling
latency
cloud-foundry
pcf
【解决方案1】:
现在我怀疑 PCF 中的 http 延迟到底是什么。是否像请求来响应所需的绝对时间一样。或者请求被确认的时间。它在被确认之前是否考虑了排队时间?有很多困惑。如果有人清除它,我可以以正确的方式实施自动缩放策略。
这是从 Gorouter 的角度可见的请求的完整响应时间。
一个更好解释的例子:
- 请求离开您的浏览器
- 它通常会命中一些负载均衡器,然后将其发送到 Gorouter。
- 然后,Gorouter 会将请求路由到您的应用程序。
- 您的应用将处理该请求。
- Gorouter 将代理来自应用程序的响应。
自动扩缩器使用的延迟值是 Gorouter 公开的指标,称为 TIMER 指标。计时器列出了从 Gorouter 收到请求到响应完全交付给客户端的时间(即示例中的步骤 3-5)。
如果您想查看每个请求的实际值,可以运行cf logs 并查看[RTR] 条目,gorouter_time 字段会告诉您延迟。您也可以使用cf tail 命令直接查看 TIMER 指标,但这需要安装额外的 cf cli 插件才会显示相同的数字。
PS:任何其他关于自动缩放的建议都可以。
只要您的响应时间不依赖于太多其他服务,或者如果您实施了良好的断路器,延迟就是一个很好的指标)。当其他服务的缓慢反映到延迟并导致自动缩放器错误地扩展您的应用程序时,延迟可能是一个问题(实际上,应该扩展上游服务)。
其他选项:
- HTTP 吞吐量,只要您使用的是最新的 PCF 版本。 See here。
- 从您的应用发出的自定义指标。使用 Spring Boot,这非常容易。通过这种方式,您可以导出有关 JVM 内存使用情况的更好指标,例如堆使用情况或线程数,这使您可以做出更智能的自动缩放决策。您还可以根据应用中的业务相关因素实施完全自定义的指标。