Jij lanceert gratis -h op een server en de kolom vrij
Om erachter te komen of de machine daadwerkelijk een geheugentekort heeft, moet je eerst kijken… beschikbaarVervolgens wisselt en geheugenactiviteit in de loop van de tijd. Een enkele waarde gebruikt Dat is niet genoeg. Dit is de methode die ik gebruik voordat ik een service stop of RAM toevoeg.

Begin met `free -h` en de kolom `available`
Voor deze basisopdracht zijn geen beheerdersrechten vereist:
gratis -h
De optie -H selecteert automatisch een leesbare eenheid, bijvoorbeeld MiB of GiB. Op de regel memBegin met deze drie kolommen:
totaal: het bekende bruikbare geheugen van de kernel;beschikbaar: de schatting van het geheugen dat een nieuw proces kan verkrijgen zonder swap te veroorzaken;vrijPagina’s die momenteel volledig ongebruikt zijn.
beschikbaar is over het algemeen nuttiger dan vrijDe kernel weet hoe een deel van de cache en herstelbare structuren vrijgemaakt moet worden. Een machine met 300 MiB in maar 4 GiB in beschikbaar Het RAM-geheugen raakt niet op.
Lees de gegevens voor ‘gebruikt’, ‘gedeeld’ en ‘buffer/cache’ zonder ze bij elkaar op te tellen.
De kolommen van vrij wordt berekend vanaf totaal En beschikbaarHet is dus niet de exacte som van het RSS-geheugen van alle processen.
gedeeldtmpfs;buffersdekt kernbuffers af;verborgenDit omvat met name de bestandscache en herstelbare structuren;verbetering/cachegroepeert buffers en cache in de standaardweergave.
Om te scheiden buffers En verborgenGebruik het breedbeeldscherm:
gratis -w -h
Deze weergave helpt om de toewijzing te begrijpen, maar verandert niets aan de diagnose: de vraag blijft hoeveel geheugen er zonder swap kan worden teruggewonnen, en of deze marge vervolgens permanent afneemt.
Waarom Linux het RAM-geheugen vult met cachegeheugen
Het opnieuw lezen van een bestand vanuit het RAM-geheugen is goedkoper dan het opnieuw lezen vanaf een SSD of harde schijf. Daarom slaat Linux recent gebruikte gegevens op in de paginacache. Zolang geen enkele applicatie deze ruimte opvraagt, biedt het leeg laten ervan geen voordeel.
Wis de cache niet met drop_caches om de wervelkolom kunstmatig te verhogen vrijJe verwijdert een nuttige cache en dwingt het systeem de gegevens opnieuw te lezen. Deze bewerking wordt voornamelijk gebruikt voor gecontroleerde tests, niet voor routinematig serveronderhoud.
U kunt de bron van de waarden controleren in /proc/meminfo :
grep -E '^(MemTotal|MemFree|MemAvailable|Buffers|Cached|SReclaimable|SwapTotal|SwapFree):' /proc/meminfo
MemAvailable Dit is een schatting die door de kernel wordt gegenereerd. Er wordt rekening gehouden met vrij geheugen en een deel van de herstelbare caches, zonder aan te nemen dat de volledige cache direct kan worden hersteld.
Kies de eenheden en bekijk verschillende voorbeelden.
Om meerdere apparaten te vergelijken of een meting in te vullen, gebruik een vaste eenheid. -M Geeft mebibytes weer. Voor decimale eenheden, tel dit op. --als :
free -h --si
Trek ook geen conclusies op basis van één enkele, geïsoleerde opname. vrij De meting kan elke twee seconden worden herhaald en na vijf metingen worden gestopt.
vrij -h -s 2 -c 5
beschikbaar Een continue daling treedt op als het swapproces doorgaat en de situatie weer normaal wordt nadat een proces is voltooid. Een korte daling tijdens een back-up of compilatie is niet hetzelfde als een continue daling gedurende meerdere uren.
De lijn Ruil van vrij Het geeft aan dat het apparaat bezet is, maar niet dat het actief is. Een paar gigabytes aan lang gebruikte data bewijzen niet dat de machine nog steeds pagina’s uitwisselt. Maak een lijst van de actieve gebieden en observeer vervolgens wat er gebeurt. En Dus vmstat :
swapon-toon
vmstat 1 5
In als Of Dusgeassocieerd met een beschikbaar Een laag geheugengebruik en vertragingen duiden op daadwerkelijke geheugenproblemen.
De gids voor wisselen onder Linux Het legt uit wanneer het gebruik ervan normaal is en waarom het wissen ervan zonder RAM-geheugen de computer kan laten vastlopen.
Zoek de processen die daadwerkelijk geheugen verbruiken.
Als de indicatoren spanning bevestigen, identificeer dan de onderliggende processen voordat u actie onderneemt:
htop
RSS Dit meet het fysieke geheugen van een proces, maar sommige pagina’s kunnen door meerdere processen worden gedeeld. Daarom kan het optellen van alle RSS-waarden het werkelijke verbruik overschatten. Gebruik deze lijst om een mogelijke oorzaak te vinden en controleer vervolgens de service, de configuratie en de logbestanden.
In htopSorteer op geheugen, haal de PID en servicenaam op en controleer vervolgens de status:
journalctl -u service-concerne -n 100 --no-pager
Beëindig niet het eerste proces bovenaan de lijst. Een database gebruikt vaak RAM als applicatiecache en respecteert mogelijk de configuratie ervan. Controleer eerst of het RAM-gebruik stabiel en verwacht is en of het geheugen wordt vrijgegeven wanneer de belasting afneemt.
Wanneer moet je concluderen dat er daadwerkelijk een tekort aan RAM-geheugen is?
Een gebrek aan geheugen wordt geloofwaardig wanneer meerdere signalen samenvallen: beschikbaar blijft zeer laag, vmstat Dit resulteert in herhaalde uitwisselingen, verslechterende reactietijden en uiteindelijk geeft de kernel het signaal voor de OOM-killer.
journalctl -k -b | grep -Ei 'out of memory|oom-killer|killed process'
dmesg -T | grep -Ei 'out of memory|oom-killer|killed process'
Corrigeer in dit geval de oorzaak: een onjuist ingestelde geheugenlimiet, geheugenlekkage, overbelasting of onvoldoende capaciteit. Voeg swapruimte alleen toe als vangnet, niet ter vervanging van permanent vol RAM-geheugen. Gratis handleidingpagina documenteert de berekeningen van de kolommen, terwijl proc_meminfo(5)