【问题标题】:Lag spikes on google container engine running a flask restful api运行烧瓶restful api的谷歌容器引擎的滞后峰值
【发布时间】:2023-03-25 23:35:01
【问题描述】:

我正在使用TCP Load Balancer 在谷歌容器引擎上运行flask restplus api。烧瓶 restplus api 调用谷歌云数据存储或云 sql 但这似乎不是问题。

一天几次甚至更多次,都会出现延迟高峰。重新启动 pod 可以解决这个问题,或者它会在 5 到 10 分钟内自行解决。当然这太过分了,需要解决。

任何人都知道可能是什么问题或对这类问题有经验吗?

谢谢

【问题讨论】:

  • 您遇到的延迟高峰是否与流量增加相对应?另外,Flask 容器和数据库是否在同一个区域/区域中?
  • 它不会随流量增加。运行测试脚本,在平均 300 毫秒的稳定响应时间 10 分钟后,出现随机延迟峰值,将响应时间增加到 10 秒或更长时间。数据库和集群位于同一区域。

标签: flask kubernetes google-cloud-platform google-cloud-sql google-kubernetes-engine


【解决方案1】:

您可以尝试的一件事是监控您的实例 CPU 负载。

虽然延迟与使用高峰不对应,但可能会出现对 CPU 负载的累积影响,当 CPU 达到给定百分比并需要暂时回退时,您遇到的延迟就会发生。如果是这种情况,您可以使用集群自动缩放,或者尝试运行更高规格的机器,看看是否有任何不同。或者,如果您在 pod/容器上的 CPU 使用量有限,请尝试增加此限制。

如果您确信 CPU 不是问题的原因,您可以尝试在问题发生时通过 SSH 连接到受影响的实例,通过负载均衡器发送请求并使用 tcpdump 分析传入的流量并出去。您可能能够发现延迟是来自负载平衡器(通过监控到实例的 HTTP 流量的延迟),还是来自 Cloud Datastore 或 Cloud SQL(来自实例)。

或者,尝试使用 strace 监控延迟之前和期间的相关进程,或使用 dtrace 监控整个系统。

【讨论】:

    猜你喜欢
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多