我正在对.NET 8.0构建的微服务应用程序进行性能测试,最近遇到了一个问题。当我在 Pod 上设置 CPU 限制时,一旦应用程序达到每秒 20 个事务 (TPS),它们就会开始重新启动。
我使用 Dynatrace 和各种 kubectl 命令来监控 CPU 和内存利用率,并确认资源使用率没有超过配置的 60% 阈值,甚至在 Pod 重新启动之前保持在 40% 以下。
尽管我对这个问题进行了彻底的调查,但我仍然无法找到解决方案。任何有关如何解决此问题的见解或指导将不胜感激!
请注意,当我从部署文件中删除 CPU 限制时,PODS 会正确扩展并且不会重新启动。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app-image:latest
resources:
requests:
memory: "1512Mi"
cpu: "2" # Request for CPU
limits:
memory: "2Gi"
cpu: "4" # Limit for CPU
ports:
- containerPort: 80