【发布时间】:2020-05-13 15:50:09
【问题描述】:
我们正在 GKE 上运行烧瓶微服务。接受所有流量并将其分配给其他服务的主应用程序正在重新启动。
POD 的就绪和活跃度开始随机超时。但是,我们正在运行 5 个特定服务的 pod,它是无状态应用程序。我注意到一件事,记忆也随着时间的推移而不断增加。
是否由于 docker python-slim 图像在某个级别无法处理应用程序以及 pod 中的持续内存增加,是否就像操作系统 python-slim 不释放内存一样?
注意:此行为仅适用于生产而不是暂存(运行单个应用程序 pod)。
这背后的原因是什么云,请帮忙。谢谢
更新 活跃度和就绪度探测配置
readinessProbe:
httpGet:
path: /k8/readiness
port: 9595
initialDelaySeconds: 25
periodSeconds: 8
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 30
livenessProbe:
httpGet:
path: /k8/liveness
port: 9595
initialDelaySeconds: 30
periodSeconds: 8
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 30
【问题讨论】:
-
它看起来像连接到这个stackoverflow.com/questions/59134207/…。在我看来,您应该尝试增加限制,监控内存使用情况并关注cloud.google.com/blog/products/gcp/…。顺便说一句,正如您在 flask.palletsprojects.com/en/1.0.x/deploying 看到的那样,“虽然轻量级且易于使用,但 Flask 的内置服务器不适合生产,因为它不能很好地扩展。”
-
@SerhiiRohoza 感谢您撰写答案和建议,我已经尝试了所有方法,但到目前为止没有任何帮助。设置的资源限制绰绰有余。
-
你有任何可以阻塞和锁定线程的请求处理程序吗?如果您有太多这些并且它们都同时发生,您可能会用完工作线程并且无法处理新请求。
标签: python kubernetes google-cloud-platform microservices google-kubernetes-engine