Troubleshooting Memory

๐Ÿง  Hoofdstuk 20.4: Geheugenproblemen Oplossen in Linux

Beheersing van geheugen is cruciaal voor systeemprestaties. Linux gebruikt RAM, buffers, swap en virtuele geheugentechnieken om processen efficiรซnt te ondersteunen.

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
๐Ÿงฎ RAM en Geheugenbeheer
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

๐Ÿ”ธ **RAM (Random Access Memory)**
โ€ข Tijdelijke opslag voor snelle toegang door processen
โ€ข Data verdwijnt bij herstart

๐Ÿ”ธ **Disk buffering**
โ€ข Linux gebruikt ongebruikt RAM voor caching
โ€ข Bevordert snelle toegang tot vaak gebruikte bestanden

๐Ÿ“Œ Belangrijke commandoโ€™s:
Commando | Beschrijving
------------------|-----------------------------
`cat /proc/meminfo` | Volledig overzicht van RAM-gebruik
`ipcs -m` | Gedeelde geheugensegmenten
`free` | Vrij, gebruikt en cache-geheugen
`sar -r` | RAM-gebruik in tijdslijn
`vmstat` | RAM, swap, I/O en CPU-activiteit

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
๐Ÿ“ˆ RAM Bottlenecks
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

๐Ÿ”น Tekort aan RAM veroorzaakt:
โ€ข Vertraagde respons
โ€ข Intensief gebruik van swap
โ€ข Lagere CPU-belasting, doordat processen wachten op geheugen

๐Ÿ”น Te veel RAM:
โ€ข Kan leiden tot inefficiรซnt gebruik
โ€ข Vaak zichtbaar bij idle servers

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
๐Ÿ’ฝ Swapping en Virtueel Geheugen
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

๐Ÿ”ธ **Pages** = Kleinste geheugeneenheid in Linux
๐Ÿ”ธ **Swap** = Diskruimte als reservegeheugen bij RAM-tekort

๐Ÿ“Œ Analyse van Swap:
Commando | Beschrijving
--------------------|----------------------------------------
`swapon -s` | Toont actieve swapbestanden/-partities
`swapon -p` | Wijzig prioriteit van swapbronnen
`vmstat` | Geeft inzicht in swap-in/swap-out activiteit

๐Ÿ“Œ Swap toevoegen:
1. Format swap:
`mkswap /dev/sdX`
2. Activeer swap:
`swapon /dev/sdX`
3. Maak permanent via `/etc/fstab`:
`/dev/sdX none swap sw 0 0`

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
๐Ÿšจ Out of Memory (OOM) Situaties
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

Wanneer RAM en swap uitgeput raken, gebruikt Linux een noodmechanisme:

๐Ÿ”ธ **OOM Killer**
โ€ข Beรซindigt processen met hoog geheugenverbruik
โ€ข Wordt automatisch geactiveerd bij geheugentekort

๐Ÿ“Œ Instellingen beheren via `sysctl`:
Instelling | Functie
-------------------------------|---------------------------------------------------
`vm.overcommit_memory=1` | Overcommitting toestaan
`vm.overcommit_memory=2` | Beperk toewijzing tot overcommit_ratio
`vm.panic_on_oom=1` | Laat systeem crashen bij OOM (noodmaatregel)
`kernel.panic=10` | Herstart systeem 10 sec. na crash

Gebruik `sysctl -w` of wijzig `/etc/sysctl.conf` om instellingen persistent te maken.

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
๐Ÿ“Œ Samenvatting
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

โœ”๏ธ Monitor RAM via `free`, `vmstat`, `sar`, en `meminfo`
โœ”๏ธ Controleer swapgebruik met `swapon` en `vmstat`
โœ”๏ธ Beheer swapruimte via `mkswap` en `/etc/fstab`
โœ”๏ธ Begrijp OOM-gedrag en pas kernelinstellingen aan
โœ”๏ธ Optimaliseer caching en vermijd overbelasting van swap