docs(lxc102): OOM cronic pe 4GB -> 12GB + refresh tabel resurse cluster
Alerta "OOM x2 on pvemini" (09:36) arata procese mici ucise (dbus-daemon, oom_score_adj:200), dar mesajul kernel dadea containerul real: oom_memcg=/lxc/102. OOM local containerului, nu presiune de host - pvemini avea 24Gi disponibili si zram functional. Baseline masurat cu ZERO sandbox-uri active: ~1.9GB (sbx 863M + claude 317M + VS Code Remote 450M + docker/tailscale/portainer 205M). Un sandbox real mai adauga ~1.9GB (containerd-shim) -> plafonul de 4GB era depasit sistematic. Contoare cumulate: oom_kill 24, 9279 depasiri memory.high, memory.peak fix pe limita, swap 510/512 epuizat. Verificat explicit ca sbx NU are memory leak: RSS urca la ~863M la pornire si se plafoneaza (esantionat la 10s timp de un minut). Fix: pct set 102 --memory 12288 --swap 4096 (live, fara restart). Tabelul de resurse din cluster/README.md era vechi (102 aparea ca "coolify stopped", lipseau 110 si 171, RAM gresit peste tot) - regenerat din pvesh. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
| IP intern | 10.0.20.113 |
|
||||
| Host Proxmox | pvemini |
|
||||
| Storage | local-zfs (30GB) |
|
||||
| RAM | 4GB (swap 512MB) |
|
||||
| RAM | 12GB (swap 4GB) — ridicat de la 4GB/512MB pe 2026-07-31, vezi „Memorie" |
|
||||
| CPU | 4 cores |
|
||||
| OS | Debian 13 (trixie) |
|
||||
| Features | `nesting=1,fuse=1` |
|
||||
@@ -139,6 +139,59 @@ Verificare finală: `sbx create opencode .` → sandbox `running`, iar în inter
|
||||
|
||||
---
|
||||
|
||||
## Memorie — OOM cronic pe 4GB (rezolvat 2026-07-31)
|
||||
|
||||
Alertă pe email „OOM x2 on pvemini", cu procese mici ucise (`dbus-daemon`,
|
||||
`oom_score_adj:200`) — derutant, pentru că victimele nu sunt vinovatul. Mesajul kernel dă
|
||||
containerul real: `oom_memcg=/lxc/102`. **OOM local containerului**, NU presiune de host —
|
||||
pvemini avea 24 Gi disponibili și zram funcțional.
|
||||
|
||||
### Bugetul real (măsurat, cu ZERO sandbox-uri active)
|
||||
|
||||
| Proces | RSS |
|
||||
|--------|-----|
|
||||
| `sbx daemon start` | ~863 MB |
|
||||
| `claude` | ~317 MB |
|
||||
| VS Code Remote-SSH (5 forks) | ~450 MB |
|
||||
| tailscaled + dockerd + containerd + portainer | ~205 MB |
|
||||
| **Baseline** | **~1.9 GB** |
|
||||
|
||||
Cu limita veche de 4096 MB, pornirea unui sandbox real (`containerd-shim` observat la
|
||||
**1.9 GB**) ducea totalul la ~3.8 GB → plafon atins → cascadă de OOM-kill. Contoare cumulate
|
||||
la momentul incidentului: `oom_kill 24`, `max 9279` depășiri de `memory.high`,
|
||||
`memory.peak` fix pe limită. Swap-ul de 512 MB era epuizat complet (510/512).
|
||||
|
||||
> **`sbx daemon` NU are memory leak.** RSS-ul urcă la ~863 MB în timpul pornirii și apoi se
|
||||
> plafonează (verificat prin eșantionare la 10s timp de un minut). O citire de ~335 MB
|
||||
> înseamnă doar că l-ai prins în mijlocul startup-ului, tipic după un kill.
|
||||
|
||||
### Fix aplicat
|
||||
|
||||
```bash
|
||||
ssh root@10.0.20.201 "pct set 102 --memory 12288 --swap 4096" # live, fără restart
|
||||
```
|
||||
|
||||
Limita cgroup **nu rezervă** memorie — containerul consumă doar cât folosește. Verificare:
|
||||
|
||||
```bash
|
||||
pct exec 102 -- free -h # 12Gi total
|
||||
cat /sys/fs/cgroup/lxc/102/memory.events # oom_kill nu mai crește
|
||||
```
|
||||
|
||||
Contoarele din `memory.events` sunt cumulate de la pornirea containerului, deci valorile
|
||||
vechi rămân afișate — ce contează e că nu mai cresc.
|
||||
|
||||
### De reținut
|
||||
|
||||
- LXC 102 **nu e „doar Docker"**: rulează sbx (sandbox-uri agenți AI) + VS Code Remote +
|
||||
Claude, toate sub userul `work`. Dimensionează-l ca mediu de dezvoltare, nu ca host Docker.
|
||||
- La orice OOM pe pvemini, citește **`oom_memcg=`** din mesajul kernel înainte de orice
|
||||
altceva — host-ul are marjă, deci aproape sigur e un cgroup de container.
|
||||
- Caz înrudit în aceeași zi, cu alt mecanism (swap fictiv fără backing pe host):
|
||||
`../cluster/incidents/2026-07-31-lxc110-dns-tailscale-oom.md`
|
||||
|
||||
---
|
||||
|
||||
## Fișiere și căi importante
|
||||
|
||||
| Cale | Conținut |
|
||||
|
||||
Reference in New Issue
Block a user