Hoe Controleer het geheugengebruik Van de Linux Terminal

0
507
Fatmawati Achmad Zaenuri/Shutterstock

Er zijn tal van manieren kunt u de lowdown op geheugengebruik binnen uw Linux-systeem. In deze roundup, we behandelen de meest gebruikte commando-regel methoden: gratis, vmstat, en top. We zullen ook kijken naar het lezen van /proc/meminfo direct.

Hoe Linux Gebruikt RAM

RAM is een eindige bron van alle processen, zoals applicaties en daemons, wilt een stukje van. Er is alleen zo veel van beschikbaar. De kernel scheidsrechters het geheugen onenigheden en wijst de gerantsoeneerd geheugen van de honger processen. Het is als een soort van moeder vogel met nog meer open snavels op haar gericht dan heeft ze het grub.

Ongebruikt RAM-geheugen wordt verspild RAM. Linux maakt gebruik van extra RAM-geheugen voor dingen zoals file buffer ruimte, om te zorgen dat uw computer optimaal laten presteren. Het is gemakkelijk de indruk wekken dat uw systeem-RAM is verbruikt door een aantal op hol geslagen proces of geheugen lek, maar dat is zelden het geval.

Het is meestal gewoon de kernel koppig doet zijn werk op de achtergrond. Als er andere eisen voor het RAM-geheugen dat de kernel heeft gestroopt voor zijn eigen apparaten, het doet afstand van het geheugen direct, dus er is geen kwaad gedaan.

Als de kernel besluit het is efficiënter om te beginnen met behulp van swap ruimte, het brengt dat in het spel, als goed. Er is een heleboel verwarring over de swappiness waarde in Linux en wanneer de kernel zal gebruik gaan maken van de swap. Het is niet waar dat de swappiness waarde stelt een drempel voor RAM-gebruik voor het activeren van swap is om te worden ingeschakeld.

Maar laten we nu eens kijken naar de verschillende technieken die u kunt gebruiken in het terminal venster om te zien het RAM-gebruik op uw Linux-computer.

De vrije Opdracht

De gratis commando geeft u een tabel van de totale, gebruikte, gratis, gedeeld, buffer/cache en beschikbaar RAM-geheugen op uw computer. Dat ziet u ook de totale hoeveelheid swap ruimte geconfigureerd, en hoeveel er wordt gebruikt en beschikbaar.

In ons voorbeeld gebruiken we de optie-m (mebibytes) optie. U kunt echter ook gebruik maken van -b (bytes), -k (kibibytes), of -g (gibibytes).

We typt u de volgende opdracht:

gratis -m

Dit is de output krijgen we:

totaal gratis gedeelde buff/cache beschikbaar
Mem: 1987 901 95 80 990 811
Swap: 1521 651 869

De Mem kolommen bevatten de volgende informatie:

  • Totaal: De totale hoeveelheid fysiek RAM-geheugen op deze computer.
  • Gebruikt: De som van de Gratis+Buffers+Cache afgetrokken van het totale bedrag.
  • Gratis: Het bedrag van niet-gebruikte geheugen.
  • Gedeeld: de Hoeveelheid geheugen die wordt gebruikt door de tmpfs bestandssystemen.
  • Buff/cache: Hoeveelheid geheugen die wordt gebruikt voor buffers en cache. Dit kan worden uitgebracht snel door de kernel als dat nodig is.
  • Beschikbaar: Dit is een schatting van het geheugen dat beschikbaar om het geheugen verzoeken van toepassingen en andere software op uw computer.

De Swap kolommen bevatten de volgende informatie:

  • Totaal: De grootte van de swap partitie of het bestand.
  • Gebruikt: Het bedrag van de swap ruimte dat in gebruik is.
  • Gratis: Het bedrag van de resterende (ongebruikte) swap ruimte.

U kunt ook gebruik maken van de volgende handige truc wij getweaked van een van onze lezers om te zien welk percentage van de swap ruimte dat wordt gebruikt:

gratis -m | grep Swap | awk ‘{print ($3/$2)*100}’

GERELATEERD: Hoe het Gebruik van de gratis Commando uit op een Linux

De vmstat Opdracht

Het is onmogelijk om een goed begrip te hebben van de manier RAM-geheugen wordt gebruikt in de Linux-box zonder een appreciatie van de toestand van de swap ruimte. Het RAM-geheugen en swap ruimte werken nauw samen.

U kunt gebruik maken van de vmstat opdracht om een diepere duik in hoe uw wisselbestand (virtueel geheugen) wordt gebruikt. Het geeft u een rapport op basis van een swap-gerelateerde statistieken op basis van de gemiddelde waarden sinds laatste reboot.

Typ het volgende:

vmstat

Dit is de uitgang zonder dat de wrap-around:

proc ‘ s ———–geheugen———- —swap– —–io—- -stelsel – – – – – – – cpu – – – – – –
r b swpd gratis buff cache si so bi bo in cs ons sy id wa st
3 0 671488 576084 51088 823876 1 7 53 62 99 14 4 1 95 0 0

Er zijn een heleboel van de gegevenspunten in het rapport, dus we breken ze af:

  • Proc:
    • r: Het aantal “draaibaar” processen. Ze lopen of wachten op hun volgende keer gesneden uitbarsting van CPU-cycli.
    • b: Het aantal processen in ononderbroken slaap. Deze niet slapen, maar het uitvoeren van een blocking system call. Ze kan niet worden onderbroken totdat ze volledig hun huidige actie. Meestal dit proces is een stuurprogramma voor het apparaat te wachten op een bron om vrij te zijn. In de wachtrij onderbreekt voor dat proces worden verwerkt wanneer het proces hervat de normale activiteiten.
  • Geheugen:
    • swpd: De hoeveelheid virtueel geheugen gebruikt, d.w.z. hoeveel geheugen is verwisseld.
    • gratis: De hoeveelheid inactief (ongebruikte) geheugen.
    • buff: De hoeveelheid geheugen die wordt gebruikt als buffers.
    • cache: De hoeveelheid geheugen die wordt gebruikt als cache.
  • Swap:
    • si: De hoeveelheid virtueel geheugen verwisseld in van swap ruimte.
    • dus: De hoeveelheid virtueel geheugen uitgewisseld swap ruimte.
  • IO:
    • bi: Blokken in. Het aantal data blokken gebruikt om te wisselen virtuele geheugen terug naar RAM.
    • bo: Blokken uit. Het aantal data blokken gebruikt om te wisselen virtueel geheugen uit de RAM naar de swap ruimte.
  • Systeem:
    • in: Het aantal interrupts per seconde, met inbegrip van de klok.
    • cs: Het aantal context switches per seconde. Een context switch is als de kernel swaps uit het systeem naar de gebruiker-modus verwerking.
  • CPU: Deze waarden zijn alle percentages van de totale CPU-tijd:
    • ons: Tijd besteed aan actieve gebruiker (niet-kernel-code).
    • sy: Tijd besteed draaiende kernel code.
    • id: bestede Tijd inactief.
    • wa: wachttijd voor in – of uitvoer.
    • st: De tijd van een virtuele machine op je te wachten voor de hypervisor te voltooien onderhoud van andere virtuele machines voor het terug kunnen komen en deelnemen aan deze virtuele machine.

GERELATEERD: het Gebruik van de vmstat Opdracht op Linux

Het top Commando

Het top commando geeft een scherm vol met informatie. De waarden worden bijgewerkt om de paar seconden.

Om het te gebruiken, typt u het volgende:

top

De “e” – toets is ingedrukt. Dit veranderde op het display om megabytes, die zijn makkelijker om visueel te ontleden, dan lange slierten vertegenwoordigen bytes. Er zijn vijf lijnen van de informatie op de bovenkant van het scherm en een onderste deel met kolommen met gegevens.

Hier is de informatie die u vindt op elke regel:

  • Regel één: De tijd, hoe lang de computer is uitgevoerd, hoeveel mensen er ingelogd zijn en wat de gemiddelde load is de afgelopen vijf, en 15 minuten.
  • Regel twee: Het aantal taken en de lidstaten: actief, gestopt, slapen, of zombie.
  • Regel drie: CPU-gegevens (zie de verdeling van de velden hieronder).
  • Regel vier: De totale hoeveelheid fysiek geheugen, en hoeveel is gratis, gebruikt, buffer of cache.
  • Regel vijf: de Totale hoeveelheid swap geheugen, en hoeveel is gratis, gebruikte en beschikbare (rekening houdend met het geheugen dat is naar verwachting vanaf caches).

De CPU-velden op lijn drie is als volgt:

  • ons: de Tijd van de CPU besteedt het uitvoeren van processen voor gebruikers in user space.
  • sy: de Tijd van de CPU besteed draaiend systeem “kernel-ruimte” – processen.
  • ni: de Tijd van de CPU bracht het uitvoeren van processen met een handmatig ingestelde mooie waarde.
  • id: CPU idle time.
  • wa: de Tijd van de CPU besteedt aan het wachten op I/O te voltooien.
  • hi: de Tijd van de CPU besteed het onderhoud van de hardware-interrupts.
  • si: de Tijd van de CPU besteed onderhoud software interrupts.
  • st (stelen van de tijd): de Tijd van de CPU verloren door draaiende virtuele machines.

Je zou kunnen hebben om druk op de pijl naar links of rechts om alle kolommen. De waarden in elke kolom worden hieronder beschreven:

  • PID: Proces-ID.
  • GEBRUIKER: de Naam van de eigenaar van het proces.
  • PR: Proces prioriteit.
  • NI: De mooie waarde van het proces.
  • VIRT: Virtueel geheugen wordt gebruikt door het proces.
  • RES: interne geheugen wordt gebruikt door het proces.
  • SHR: Gedeelde geheugen wordt gebruikt door het proces.
  • S: de Status van het proces. (Zie de lijst van waarden in dit veld kunt nemen hieronder).
  • %CPU: Het aandeel van de CPU-tijd gebruikt door het proces dat sinds de laatste update.
  • %MEM: De delen van het fysieke geheugen gebruikt.
  • TIJD+: Totale CPU-tijd gebruikt door de taak in 100-en van een tweede.
  • OPDRACHT: de naam van De Opdracht of de lijn (naam + opties). (Deze column is offscreen aan de rechterkant in de afbeelding hierboven.)

De status wordt weergegeven in de N-kolom kan een van de volgende handelingen uit:

  • D: Uninterruptible slapen.
  • R: Uitgevoerd.
  • S: Slapen.
  • T: Getraceerd (gestopt).
  • Z: Zombie.

Druk op Q om te verlaten top.

Lezen /proc/meminfo

Veel (en, zeer waarschijnlijk, de meeste van de tools in Linux dat rapport geheugen statistieken halen hun informatie van het pseudo-bestandssysteem /proc/meminfo. We kunnen gebruik maken van de kat of minder commando ‘ s om hetzelfde te doen.

We typt u het volgende:

minder /proc/meminfo

Ziet u verschillende velden, afhankelijk van de kernel die draait, en de architectuur van de CPU. We hebben de volgende resultaten op onze virtuele machine:

MemTotal: 2035260 kB
MemFree: 919064 kB
MemAvailable: 1300932 kB
Buffers: 33528 kB
Cache: 457604 kB
SwapCached: 29732 kB
Actief: 313360 kB
Inactief: 603276 kB
Actief(anon): 74648 kB
Inactief(anon): 355004 kB
Actief(bestand): 238712 kB
Inactief(bestand): 248272 kB
Unevictable: 16 kB
Mlocked: 16 kB
SwapTotal: 1557568 kB
SwapFree: 873024 kB
Vuil: 80 kB
Terugschrijven: 0 mb
AnonPages: 414100 kB
Toegewezen: 97436 kB
Shmem: 4148 kB
KReclaimable: 52932 kB
Plaat: 94216 kB
SReclaimable: 52932 kB
SUnreclaim: 41284 kB
KernelStack: 9280 kB
PageTables: 45264 kB
NFS_Unstable: 0 mb
Bounce: 0 mb
WritebackTmp: 0 mb
CommitLimit: 2575196 kB
Committed_AS: 5072192 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 35712 kB
VmallocChunk: 0 mb
Percpu: 720 kB
HardwareCorrupted: 0 mb
AnonHugePages: 0 mb
ShmemHugePages: 0 mb
ShmemPmdMapped: 0 mb
CmaTotal: 0 mb
CmaFree: 0 mb
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 mb
DirectMap4k: 180160 kB
DirectMap2M: 1916928 kB

Alle maten zijn op kibibytes tenzij anders aangegeven. Hier is wat betekenen ze allemaal, samen met nog enkele anderen u kunnen zien, afhankelijk van de configuratie van uw computer en hardware:

  • MemTotal: Totale bruikbare RAM (afgezien van een paar gereserveerde bits en de kernel binaire code).
  • MemFree: De som van LowFree+HighFree. De hoeveelheid RAM-geheugen die momenteel beschikbaar zijn.
  • MemAvailable: Geschatte geheugen beschikbaar is om nieuwe toepassingen, zonder te wisselen.
  • Buffers: Tijdelijke opslag voor ruwe blokken. Dit vermindert de harde schijf van de in – en uitgang. Het versnelt ook de toegang tot de volgende aanvragen voor dezelfde data, omdat het al in het geheugen.
  • Cache: Cache pagina ‘ s lezen van bestanden op de harde schijf (niet met inbegrip van SwapCached).
  • SwapCached: Geheugen dat was verwisseld en terug in, en een kopie blijft in de swap-ruimte.
  • Actief: gebruikt Geheugen onlangs. Het is niet teruggevorderd, tenzij het absoluut noodzakelijk is.
  • Non-actief: het Geheugen dat is gebruikt, maar niet de meest recent gebruikte. Het is een waarschijnlijke kandidaat voor de drooglegging.
  • Actief(anon): Geheugen toegewezen aan bestanden die zijn gemaakt in een tmpfs pseudo-bestandssysteem. Anoniem bestanden zich niet op de harde schijf.
  • Inactief(anon): Bedrag van anonieme, tmpfs, en shmem geheugen dat is een kandidaat voor de ontruiming van het geheugen (de drooglegging).
  • Actief(bestand): Bedrag van bestand in cache geheugen in gebruik is, of dat is gebruikt sinds het vorige geheugen regeneratiecyclus.
  • Inactief(bestand): Bedrag van bestand in cache geheugen lezen van een harde schijf is een kandidaat voor de drooglegging.
  • Unevictable: Hoeveelheid geheugen dat moet worden evictable, maar is het niet, want het is gesloten, in het geheugen door de gebruiker ruimte processen.
  • Mlocked: de Totale hoeveelheid geheugen niet evictable want het is vergrendeld door gebruiker-ruimte processen.
  • HighTotal: Totaal bedrag van HighMem, die wordt gebruikt door de gebruikers-ruimte-programma ‘ s en pagina cache. De kernel toegang tot dit geheugen zone, maar langzamer is voor de toegang tot dan LowMem.
  • HighFree: Hoeveelheid vrije HighMem.
  • LowTotal: Bedrag van LowMem, die beschikbaar is voor alle dezelfde doeleinden als HighMem, maar ook voor de kernel te gebruiken voor eigen doeleinden.
  • LowFree: Hoeveelheid vrije LowMem.
  • MmapCopy: de Hoeveelheid geheugen die is toegewezen aan de data van een bestand.
  • SwapTotal: de Totale hoeveelheid swap ruimte beschikbaar.
  • SwapFree: grootte van de swap ruimte dat is op dit moment niet gebruikt.
  • Vuil: Hoeveelheid geheugen te wachten om te worden geschreven naar de schijf.
  • Terugschrijven: Geheugen actief te worden geschreven naar de schijf.
  • AnonPages: Non-bestand een back-pagina ‘ s toegewezen aan gebruikers-ruimte tabellen van de pagina.
  • Toegewezen: Bestanden (zoals bibliotheken) die zijn toegewezen in het geheugen.
  • Shmem: Hoeveelheid geheugen die in tmpfs pseudo-file-systemen.
  • KReclaimable: Kernel geheugen toewijzingen van de kernel zal proberen terug te vorderen als de vraag naar geheugen is ernstig genoeg.
  • Mat: de In-kernel data structuren cache.
  • SReclaimable: Bedrag van de Plaat geheugen dat kan worden teruggewonnen, zoals caches.
  • SUnreclaim: Bedrag van de Plaat geheugen kan niet worden teruggevorderd.
  • KernelStack: Hoeveelheid geheugen die is toegewezen aan de kernel stacks.
  • PageTables: Hoeveelheid geheugen die gewijd is aan het laagste niveau van de tabellen van de pagina.
  • Quicklists: Omdat de toewijzing en beëindiging van de tabellen van de pagina is een zeer frequent gebruik, is het van groot belang dat het zo snel mogelijk. Zo, de pagina ‘ s gebruikt voor de tabellen van de pagina in de cache zijn opgeslagen in een aantal verschillende lijsten genoemd “quicklists.”
  • NFS_Unstable: Network File System (NFS) pagina ‘ s die de server heeft ontvangen, maar nog niet geschreven om niet-vluchtige opslag.
  • Bounce: Geheugen dat wordt gebruikt voor block apparaat bounce buffers. Een bounce buffer is gepositioneerd in het geheugen laag genoeg is voor een apparaat dat rechtstreeks toegang tot het. De gegevens worden vervolgens gekopieerd naar de gewenste pagina gebruiker in HighMem.
  • WritebackTmp: Geheugen dat wordt gebruikt door Filesystem in Userspace (FUSE) voor tijdelijke write-back maken.
  • CommitLimit: De totale hoeveelheid geheugen die momenteel beschikbaar zijn om te worden toegewezen in het systeem.
  • Committed_AS: De hoeveelheid geheugen geschatte om te voldoen aan alle huidige eisen. Als een programma aanvragen RAM-geheugen, de aanvraag is opgenomen, maar de RAM wordt enkel toegekend wanneer het programma begint om het te gebruiken. Het is ook alleen toegekend als nodig is, tot maximaal het bedrag van het programma voorbehouden. Meer geheugen kan worden “toegewezen” dan daadwerkelijk kan worden geleverd. Als alle programma ‘ s proberen om contant geld in hun RAM-chips in een keer, het geheugen casino kan failliet gaan (en moeten gaan cap in hand om de swap-ruimte financiers).
  • VmallocTotal: Totale grootte van de vmalloc het gebied van het geheugen.
  • VmallocUsed: Bedrag van vmalloc gebied gebruikt. Sinds Linux 4.4, dit veld is niet langer berekend, het is hard gecodeerd.
  • VmallocChunk: Grootste aaneengesloten blok van gratis vmalloc gebied.
  • HardwareCorrupted: Hoeveelheid geheugen gelabeld als het hebben van een fysieke geheugen problemen. Het zal niet worden toegewezen.
  • LazyFree: Hoeveelheid geheugen in MADV_FREE staat. Wanneer een toepassing wordt de MADV_FREE vlag op een bereik van pagina ‘ s, dit geeft aan dat het niet langer vereist dat ze, en ze zijn nu drooglegging kandidaten. De werkelijke terugwinning kan worden uitgesteld totdat er voldoende vraag is voor het geheugen. Als de toepassing wordt gestart om te schrijven naar pagina ‘ s, de inpoldering kan worden geannuleerd.
  • AnonHugePages: Non-bestand een back-grote pagina ‘ s toegewezen aan gebruikers-ruimte tabellen van de pagina. Non-bestand een back-pagina ‘ s niet afkomstig zijn van een harde-schijf-bestand.
  • ShmemHugePages: Hoeveelheid geheugen die wordt gebruikt door het gedeelde geheugen (shmem) en pseudo-file systems (tmpfs) toegewezen met grote pagina ‘ s.
  • ShmemPmdMapped: Bedrag van het gedeelde geheugen is toegewezen aan gebruikers-ruimte met grote pagina ‘ s.
  • CmaTotal: Bedrag van de CMA (Aaneengesloten Memory Allocator) pagina ‘ s. Deze worden gebruikt door apparaten die alleen kan communiceren naar aangrenzende regio ‘ s van het geheugen.
  • CmaFree: Hoeveelheid vrije CMA (Aaneengesloten Memory Allocator) pagina ‘ s.
  • HugePages_Total: Huge page zwembad grootte.
  • HugePages_Free: Aantal niet-toegewezen grote pagina ‘ s in het zwembad.
  • HugePages_Rsvd: Aantal gereserveerde grote pagina ‘ s. De verplichting tot het toewijzen van heeft gemaakt, maar de toewijzing is nog niet opgetreden, maar toch.
  • HugePages_Surp: Aantal grote pagina ‘ s in het zwembad boven de gedefinieerde systeem-waarde.
  • Hugepagesize: Grootte van grote pagina ‘ s.
  • DirectMap4k: Aantal bytes RAM toegewezen aan 4 kB pages.
  • DirectMap4M: Aantal bytes RAM toegewezen aan 4 MB ‘ s.
  • DirectMap2M: Aantal bytes RAM toegewezen aan 2 MB ‘ s.
  • DirectMap1G: Aantal bytes RAM toegewezen aan 2 GB pagina ‘ s.

Zoals gebruikelijk met Linux is er meer dan één manier om een snel overzicht, en altijd ten minste één manier dieper in te gaan op de details.

U zal waarschijnlijk gebruik maken van gratis, top, en vmstate regelmatig, en houden /proc/meminfo in reserve voor als je nodig hebt om een diepe duik te onderzoeken van een bepaald probleem.

LEES VERDER

  • “Hoe het Desinfecteren van Uw Smartphone
  • “Samsung Galaxy S20: het Uitschakelen van de Screenshot Werkbalk
  • “Het Uitschakelen van Firefox Fullscreen Waarschuwing
  • “Het Bewerken van Video’ s op Uw iPhone of iPad
  • “Hoe Veilig Schoonmaken van Uw iPhone Met Desinfecterende Doekjes