MySQL heeft het moeilijk. free -h: 512 MB swap gebruikt, RAM “vol”. Het team verdubbelt de swap van 2 naar 8 GB – de traagheid wordt erger. Het echte probleem: query zonder index + bufferpool te klein, niet de afwezigheid van swap.
Swap is niet altijd slecht en ook niet altijd goed: context en statistieken.
Lees gratis en vmstat
beschikbaar betrouwbaarder dan een vrije cacheregel. vmstat 1: als bi/s constant in/uit wisselt onder belasting → onvoldoende RAM.
Maak onderscheid tussen gebruikte swap en swap activiteit.
Rollen van ruil
Netto: vermijdt OOM-killer bij korte piek.
Symptoom: werkset > RAM blijft behouden.
Slecht idee: voor onbepaalde tijd compenseren voor te kleine RAM-goedkope VPS.
Op werkdruk
| Werklast | Aanbeveling |
|---|---|
| PostgreSQL/MySQL | RAM eerst, minimale activiteit wisselen |
| Staatloos PHP-web | ruil OK klein, kijk naar OOM |
| Opnieuw | bijna nutteloos swappen, uitschakelen of swappiness 1 |
| Partijavond | swap kan pieken afvlakken |
Afstemmen op host: sommige VPS zonder swap by design.
Afstemmen
swappiness=10 /etc/sysctl.d. SSD-swap is beter dan HDD, maar de latentie blijft ms versus µs RAM.
zram op 1-2 GB VPS als recente kernel.
Upgradebesluit
Als swapin/swapout > 0 aanhoudend + latentie SLO verbroken → upgrade RAM of shard-service. Verander alleen swappiness = aspirine.
Beslissingsmatrix
| Signaal | Actie |
|---|---|
| swap gebruikt, swapin/uit ~0 | monitoren |
| swapin/out aanhoudend + latentie | RAM-geheugen upgraden |
| OOM doodt | RAM + app-limiet |
| Redis-swap | onmiddellijk repareren |
| Batch nachtelijke swap OK | document verwacht |
Beoordeling na wijziging van het type cloudinstantie: wijzigingen in de RAM/swap-verhouding.
Waarschuwing
Waarschuw als de swap >50% wordt gebruikt en de swapinrente >0 aanhoudt gedurende 5 minuten — niet de waarschuwing dat de swap alleen wordt gebruikt.
Dashboard: RAM beschikbaar + wisselactiviteit hetzelfde paneel.
Capaciteitsplan: RAM-upgradetrigger gedefinieerd (bijv. swapin >10/s 15min).
Kubernetes node swap-beleid: bepaalde clusters verbieden – plan geheugenverzoeken/-limieten voordat je hebzuchtige Java-heap implementeert.
JVM-containers zonder limietgeheugen + swaphost = onvoorspelbare GC-latentie.
Containers en ruil
Docker zonder limietgeheugen: container kan swaphost activeren - definieer mem_limit.
Kubernetes: schakel standaard veel clusters uit - expliciet OOMKill-pod versus host-wisselbeleid.
Monitoring: waarschuwing als swap-IO-wacht correleert met API-latentie - niet alleen de gebruikte statistiek.
Operationele samenvatting
Gebruikte swap is niet alert; actieve swap onder belasting is. DB-productie: eerst RAM. Kleine VPS: een kleine ruil vermijdt brute OOM. Meet vmstat, niet alleen gratis.
Kubernetes en Redis: vermijd swap-host voor latentiegevoelige workloads.
Leesdashboard
Paneel 1: RAM beschikbaar trend 7 dagen. Paneel 2: swap-in/uit-percentage. Paneel 3: app p95 latentie-overlay. Correlatiewissel + latentie = gecodeerd RAM-upgradeticket.
Runbook-documentatie: wanneer de gebruikte statische swap moet worden genegeerd, wanneer op afroep moet worden opgeroepen.
Operationeel toezicht
Documenteer de basislijnwissel na het incident – toekomstige vergelijking. Alert swapin gecorreleerde latentie. OOM killer log review na swappiek – waarbij het slachtoffer wordt verwerkt. Documenteer de kloof tussen de belofte van de hostingprovider en de veldmeting in de driemaandelijkse evaluatie.
Kwartaalvoortzetting
Documenteer de basislijnwissel na het incident – toekomstige vergelijking. Alert swapin gecorreleerde latentie. OOM killer log review na swappiek – welk slachtoffer wordt verwerkt. Documenteer de kloof tussen de belofte van de hostingprovider en de veldmeting in de driemaandelijkse evaluatie.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Matrixwissel
| Signaal | Actie |
|---|---|
| swap gebruikt, swapin ~0 | monitoren |
| swapin + latentie | RAM-upgrade |
| Redis-swap | nu repareren |
PaaS: OOM alleen zichtbaar - grootte RAM.
Beslis en ga vooruit zonder blinde vlek
- Correleer swapin/out en app-latentie — swap gebruikt zonder activiteit = monitor; ondersteunde swapin = RAM-ticket.
- Dashboard met drie panelen — RAM beschikbaar, swap I/O, p95-latentie-overlay.
- Redis en databases worden nooit uitgewisseld — onmiddellijke oplossing indien gedetecteerd.
- Document aanvaardbare nachtelijke batch — voorspelbare uitwisseling versus geheugenlek.
- Beoordeling na wijziging van cloudinstantie: de RAM/swap-verhouding verandert afhankelijk van het type.
Upgrade RAM: nummers handmatig via de bestanden vergelijker en overzicht.
Veelgestelde vragen
Ruil 100% gebruikt = noodgeval?
Noodgeval als de latentie explodeert en het grootste deel van het actieve RAM in swap is (als de kolom laag beschikbaar is). Kan goedaardig zijn als koude pagina's inactief zijn.
swappiness 60 of 10?
10–20 op prod DB/cache-servers om agressieve swap te voorkomen. 60 desktop-georiënteerde standaard.
Moeten we swap uitschakelen?
Zelden op kleine VPS - een kleine ruil voorkomt brute OOM-kill. Kritieke DB: liever meer RAM dan nul swap.
zram nuttig?
Op kleine VPS krappe RAM comprimeert zram RAM - beter dan langzame schijfwissel, geen vervanging voor echt RAM voor een grote werkset.
Controleer vmstat voordat u cloud swap koopt. Soms ontbreekt er 4 GB RAM, en niet 4 GB swap.
