equalize memory req=lim across 70+ containers using Prometheus 7d max data

After node2 OOM incident, right-size memory across the cluster by setting
requests=limits based on max_over_time(container_memory_working_set_bytes[7d])
with 1.3x headroom. Eliminates ~37Gi overcommit gap.

Categories:
- Safe equalization (50 containers): set req=lim where max7d well within target
- Limit increases (8 containers): raise limits for services spiking above current
- No Prometheus data (12 containers): conservatively set lim=req
- Exception: nextcloud keeps req=256Mi/lim=8Gi due to Apache memory spikes

Also increased dbaas namespace quota from 12Gi to 16Gi to accommodate mysql
4Gi limits across 3 replicas.
This commit is contained in:
Viktor Barzin 2026-03-14 21:46:49 +00:00
parent eb0301b02b
commit 23019da8e5
39 changed files with 211 additions and 74 deletions

View file

@ -362,7 +362,7 @@ resource "kubernetes_deployment" "mailserver" {
resources {
requests = {
cpu = "25m"
memory = "128Mi"
memory = "512Mi"
}
limits = {
memory = "512Mi"
@ -391,10 +391,10 @@ resource "kubernetes_deployment" "mailserver" {
resources {
requests = {
cpu = "10m"
memory = "16Mi"
memory = "32Mi"
}
limits = {
memory = "64Mi"
memory = "32Mi"
}
}
}

View file

@ -155,6 +155,15 @@ resource "kubernetes_deployment" "roundcubemail" {
name = "enigma"
mount_path = "/var/roundcube/enigma"
}
resources {
requests = {
cpu = "25m"
memory = "192Mi"
}
limits = {
memory = "192Mi"
}
}
}
# volume {