我们有一个情况,当Kubernetes达到容器的最大内存限制时,它会杀死Mongo容器。尽管这是预期的K8s工作方式,但感觉Mongo没有重复使用其内存,因为即使用户负载和交易相同,它仍然不断增加内存使用量。因此,需要检查如何限制Mongo达到容器的最大内存或定期刷新Mongo内存。
我已经尝试增加内存,这有助于Pod在K8杀死之前运行几天。
我已经尝试增加内存,这有助于Pod在K8杀死之前运行几天。
"containers": [
{
"name": "mongo",
"image": "dockercentral.com:5870/com.public/mongodb:3.6",
"ports": [
{
"containerPort": 27017,
"protocol": "TCP"
}
]
"resources": {
"limits": {
"cpu": "1",
"memory": "24Gi"
},
"requests": {
"cpu": "250m",
"memory": "24Gi"
}
}
"name": "MONGO_SECURITY",
"value": "true"
}
],
"resources": {
"limits": {
"cpu": "500m",
"memory": "1Gi"
},
"requests": {
"cpu": "150m",
"memory": "256Mi"
}
},
storage.wiredTiger.engineConfig.cacheSizeGB
设置为小于容器可用RAM数量的值。 - StenniewiredTigerCacheSizeGB
。如果将wiredTigerCacheSizeGB
设置为与默认值类似(可用RAM的50%-1GB),则内存使用应更加稳定。注意:通过SERVER-16571在MongoDB 4.1.9开发分支中实现了改进,这已被迁移到即将发布的3.6.13和4.0.9服务器版本中。 - Stennie