...

Linux procfs voor beheerders: een overzicht van belangrijke bestanden

De Linux procfs geeft de huidige status van de kernel weer via virtuele bestanden in /proc. Voor het beheer zijn vooral de belasting, het geheugen, de processen, de bestandsdescriptoren en de blokapparaten relevant. Het is van cruciaal belang om de waarden in de juiste context te plaatsen: sommige waarden zijn momentopnames, andere zijn tellers sinds het opstarten of voortschrijdende gemiddelden. Bekijk daarom nooit slechts één enkele waarde, maar vergelijk deze met relevante signalen en de context van de host, VM of container.

procfs begrijpen: virtueel kerneloverzicht in plaats van gegevensopslag

De procfs is een virtueel bestandssysteem: de vermeldingen onder /proc geven de gegevensstructuren en statussen van de actieve Linux-kernel weer. Ze worden niet als permanent opgeslagen inhoud op een opslagmedium bewaard. Bij het lezen genereert de kernel het betreffende overzicht op basis van zijn huidige toestand; na een herstart beginnen veel tellers bijvoorbeeld opnieuw. Daarom is /proc een interface voor observatie en gedeeltelijke besturing, en geen plek voor eigen bestanden of permanente configuraties.

Wat de administratie betreft, moeten drie gebieden worden onderscheiden. Globale statusbestanden zoals /proc/meminfo, /proc/stat of /proc/loadavg leveren kernelbrede statistieken. Mappen met numerieke namen, zoals /proc/1234, geven details over een afzonderlijk proces. Onder /proc/sys bevinden zich daarentegen kernelparameters die, afhankelijk van de machtigingen en de parameter, zowel leesbaar als schrijfbaar kunnen zijn. De gelijkaardige bestandsnaam mag niet verhullen dat het opvragen van de status en het wijzigen van de configuratie fundamenteel verschillende gevolgen hebben.

Welke paden en velden beschikbaar zijn, is niet op elk Linux-systeem hetzelfde. De kernelversie en -configuratie, de architectuur, de herkende hardware en de geladen modules beïnvloeden de zichtbare vermeldingen. Ook namespaces veranderen bepaalde weergaven. Een procfs dat is gekoppeld aan een PID-namespace beperkt met name de proces- en PID-weergave; hieruit volgt echter niet dat globale bestanden automatisch container- of cgroup-specifieke waarden weergeven. Scripts moeten bestanden en velden controleren voordat ze de inhoud ervan verwerken, in plaats van uit te gaan van een volledige, overal dezelfde procfs-structuur.

Dit moet worden onderscheiden van sysfs onder /sys: dit geeft vooral apparaten, stuurprogramma’s en hardwareobjecten weer. Voor de toewijzing van bronnen en de beperkingen van groepen is bovendien cgroup2 relevant. procfs blijft echter de directe bron voor veel kernel- en processtatussen die nodig zijn bij een eerste diagnose.

Tellers, momentopnames en zichtbaarheid op de juiste manier interpreteren

Bij procfs is de waarde op zichzelf zelden de oorzaak van een probleem. Eerst moet duidelijk worden wat de tijdsreferentie is: sommige gegevens zijn cumulatieve tellers sinds de systeemstart; andere geven de huidige toestand weer; weer andere geven voortschrijdende tijdsvensters weer. Een hoge tellerstand geeft in eerste instantie alleen aan dat een gebeurtenis zich sinds het opstarten heeft opgestapeld. Een snelheid ontstaat pas uit twee meetpunten: het verschil tussen de waarden gedeeld door het tussenliggende tijdsinterval. Dit geldt bijvoorbeeld voor veel CPU-, interrupt- en schijftellers.

Het bestand /proc/uptime geeft de verstreken bedrijfstijd en de totale inactieve tijd weer. Het helpt bij het in de tijd plaatsen van tellerstanden sinds de opstart, maar is geen vervanging voor een reeks metingen. Een eenmalige opvraging is een momentopname; voor betrouwbare uitspraken over trends, pieken of terugkerende belasting zijn herhaalde opvragingen met tijdstempels nodig. Daarbij kunnen waarden al tijdens het uitlezen veranderen, omdat de kernel blijft werken.

Ook de zichtbare gegevens hebben hun beperkingen. /proc/self verwijst altijd naar het proces dat op dat moment het pad ontleedt. Daardoor is het handig voor scripts en interactieve controles, zonder dat er een PID hoeft te worden aangenomen. De toegang tot procesmappen van andere processen kan echter worden beperkt door bestandsrechten, Linux-capabilities en de procfs-mount-optie hidepid beperkt zijn. Het ontbreken van inzichten is in dit geval niet te wijten aan een defect in procfs, maar vormt een bescherming tegen het uitlezen van gevoelige procesinformatie.

In containers is extra voorzichtigheid geboden. Een procfs dat aan een PID-namespace is gekoppeld, toont bij procesgerelateerde paden alleen de processen van die namespace-weergave. Globale kernelbestanden zoals /proc/meminfo, /proc/stat of /proc/diskstats kunnen daarentegen nog steeds waarden van de host weergeven en worden niet automatisch beperkt tot de containerlimiet. Vóór elke diagnose moet daarom worden verduidelijkt of de vraag betrekking heeft op processen, globale kernelwaarden of de daadwerkelijk toegewezen resources; limieten en het gebruik van een container horen bovendien thuis in de cgroup2-analyse.

Lezen, configureren en beveiligen onder /proc/sys

De afdeling /proc/sys is de bestandssysteemweergave van de sysctl-interface. Het uitlezen van een waarde dient voor diagnostische doeleinden. Schrijftoegang daarentegen verandert onmiddellijk het gedrag van de actieve kernel en kan van invloed zijn op diensten, het verbruik van systeembronnen of beveiligingsfuncties. Het feit dat een wijziging zonder herstart van kracht wordt, betekent niet dat deze risicoloos is en ook niet automatisch permanent: de persistentie hangt af van de gekozen systeemconfiguratie.

De directorystructuur maakt de eerste indeling eenvoudiger. Onder /proc/sys/fs staan onder andere globale parameters voor het bestandssysteem en bestands-handles. /proc/sys/vm bundelt instellingen voor het geheugenbeheer, terwijl /proc/sys/net netwerkgerelateerde parameters bevat. Welke submappen en sleutels beschikbaar zijn, hangt op zijn beurt af van de kernelconfiguratie en de functies van het systeem. Een aanwezige parameter is daarom geen algemeen afstemmingsrecept; de documentatie ervan en de concrete workload zijn bepalend.

Een tegenvoorbeeld van schijnbare optimalisatie is drop_caches onder /proc/sys/vm. De kernel-documentatie beschouwt deze functie als bedoeld voor debugging en tests en raadt het gebruik ervan voor andere doeleinden af, omdat het leegmaken van herbruikbare caches ten koste kan gaan van de prestaties. Weinig vrij geheugen is op zich geen reden om caches te legen: de kernel gebruikt RAM bewust ook voor bestandscache.

Voor elke wijziging moet er een aantoonbare reden zijn. Leg eerst de uitgangswaarde vast, documenteer het doel en de verwachte bijwerkingen, breng de wijziging op gecontroleerde wijze aan en observeer vervolgens de relevante meetwaarden en het systeemgedrag. Plan van tevoren hoe je terug kunt gaan en neem een waarde pas op in een permanente configuratie na een technische controle. Meer achtergrondinformatie over parameters en het gecontroleerde beheer daarvan wordt behandeld in het artikel Kerneltuning in Linux hosting: Sysctl parameters in een oogopslag.

De belangrijkste procfs-bestanden per beheertaken

De keuze van een procfs-bestand moet uitgaan van de beheersvraag, niet van een zo volledig mogelijke lijst met mappen. Globale bestanden leveren vaak waarden voor de gehele kernel, procespaden beschrijven een enkel zichtbaar proces, en vermeldingen onder /proc/sys/fs geven configuratiegegevens en systeembrede limieten weer. Sommige waarden zijn actuele statussen, andere zijn tellers die sinds het opstarten zijn opgebouwd of voortschrijdende gemiddelden. Dit onderscheid bepaalt of één enkele uitlezing volstaat of dat twee meetpunten nodig zijn.

Belangrijke procfs-bestanden voor veelvoorkomende beheerkwesties
PadDoelTypische vraagAard van de gegevensBelangrijke beperkingVeilige leesaanvraag
/proc/loadavgsysteembelastingZijn er taken die nog moeten worden afgehandeld?gemiddelde over 1, 5 en 15 minutenGeen zuivere CPU-belastingcat /proc/loadavg
/proc/statCPU- en kernel-tellersHoe zijn de CPU-tijden verdeeld?Cumulatief sinds de opstartiowait niet afzonderlijk beoordelengrep -E ‚^(cpu|intr|ctxt|processes)‘ /proc/stat
/proc/meminfoOverzicht van de opslagruimteIs er opslagruimte beschikbaar?Huidige opgeslagen waardenMemFree alleen is niet voldoende; in de container hoeft het niet per se cgroup-specifiek te zijncat /proc/meminfo
/proc/pressure/cpuCPU-stagnatiesWachten taken op de CPU?Tijdvensters en tellers'full' op systeemniveau kan niet worden geïnterpreteerd en wordt weergegeven als nulcat /proc/pressure/cpu
/proc/druk/geheugenopslagdrukBelemmert het tekort aan opslagruimte de taken?Tijdvensters en tellersPSI moet beschikbaar zijncat /proc/pressure/memory
/proc/pressure/ioI/O-stallsWachten taken op I/O?Tijdvensters en tellersGeen vervanging voor een analyse van de apparatuurcat /proc/pressure/io
/proc//statusStatus van het procesHoe groot en actief is een proces?Actuele procesgegevensRechten en de PID-naamruimte kunnen de toegang beperkencat /proc/$$/status
/proc//fdOpen descriptorenWelke objecten houdt een proces vast?Actuele symbolische linksVeel FD’s betekenen niet automatisch dat er een lek isls -l /proc/$$/fd
/proc//mapsVirtuele mappingsWelke onderdelen omvat een proces?Actuele lijst met kaartenVaak te uitgebreid voor een eerste analysecat /proc/$$/maps
/proc/diskstatsBlokapparaten-I/OWelke apparaten werken?Cumulatief sinds de opstartVoor schattingen zijn twee steekproeven nodig; waarden kunnen voor de hele host geldencat /proc/diskstats
/proc/sys/fs/bestand-nrGebruik van bestands-handlesHoeveel handles gebruikt het systeem?Huidige stand en limietHet middelste veld is op moderne Linux-systemen nulcat /proc/sys/fs/file-nr
/proc/sys/fs/bestand-maxLimiet voor het aantal bestands-handlesWelke wereldwijde bovengrens geldt er?Actieve parameterNiet verwarren met de proceslimietcat /proc/sys/fs/file-max

De tabel is een hulpmiddel om mee te beginnen, geen diagnostische keten. Een opvallende waarde vereist altijd een onafhankelijke bevestiging: ‘Load’ met CPU- en I/O-gegevens, geheugenwaarden met ‘Pressure Stall Information’ en procesgrootheden met het gedrag van de dienst. Met name /proc/diskstats en /proc/stat zijn cumulatieve tellers; het verschil over een bekend interval zegt meer over de snelheid dan de absolute waarde. In containers moet bovendien worden gecontroleerd of een bestand globale kernelwaarden weergeeft of een overzicht biedt dat per cgroup beschikbaar is. In de volgende paragrafen worden de signalen daarom ingedeeld op basis van belasting, geheugen, processen en I/O.

Belasting, CPU en geheugen: signalen gecombineerd beoordelen

Bij een traag werkend systeem is /proc/loadavg een goed uitgangspunt, maar geen definitief oordeel over de CPU. De drie waarden geven de gemiddelde belasting van de afgelopen 1, 5 en 15 minuten weer. In de belasting worden niet alleen uitvoerbare eenheden in de toestand R meegeteld, maar ook taken in de ononderbreekbare wachttoestand D, bijvoorbeeld bij I/O. Het vierde veld toont het aantal momenteel uitvoerbare eenheden ten opzichte van alle bestaande scheduling-eenheden. Hoge Gemiddelde belasting kan daarom wijzen op CPU-concurrentie, geblokkeerde I/O-toegangen of beide.

Conceptuele koppeling van belasting-, opslag-, CPU- en I/O-signalen.
Conceptuele illustratie: pas door meerdere kernindicatoren samen te nemen, is een betrouwbare indeling van de belasting mogelijk.
Terminal
cat /proc/loadavg
grep -E '^(cpu|intr|ctxt|processes)' /proc/stat
cat /proc/meminfo
cat /proc/pressure/memory

De CPU-regels uit /proc/stat bevatten tijdspercentages sinds de systeemstart in USER_HZ. Om hieruit de belastingpercentages te bepalen, moeten twee metingen worden vergeleken; een enkele meting geeft alleen de totale tijd weer. De waarde iowait is daarbij geen directe maatstaf voor de latentie van opslag: de berekening ervan kent gedocumenteerde beperkingen en kan onder bepaalde omstandigheden zelfs dalen. Voor het vaststellen van een I/O-oorzaak is het daarom zinvol om aanvullend apparaatwaarden en I/O-PSI te raadplegen.

Zelfs een lage waarde voor MemFree betekent nog niet dat er een tekort aan RAM is. Linux gebruikt ongebruikt werkgeheugen doelgericht voor de cache. MemAvailable geeft een schatting van hoeveel geheugen nieuwe toepassingen naar verwachting kunnen krijgen zonder swapping, en is meestal nuttiger voor een eerste inschatting. Pas wanneer MemAvailable schaars wordt en er tegelijkertijd geheugenstoringen optreden, wordt de aanwijzing voor opslagdruk. In een container kunnen deze globale geheugenwaarden echter afkomstig zijn van de host; voor gegarandeerde of beperkte bronnen is bovendien de cgroup2-weergave bepalend.

De bestanden onder /proc/pressure vullen dit beeld aan. Bij memory en io betekent ‘some’ dat ten minste enkele taken gedurende een deel van het tijdvenster vastliepen; ‘full’ staat daar voor een toestand waarin alle niet-inactieve taken tegelijkertijd geblokkeerd waren. De waarden ‘avg10’, ‘avg60’ en ‘avg300’ hebben betrekking op 10, 60 en 300 seconden; ‘total’ is een cumulatieve stall-teller. Voor CPU is ‘full’ op systeemniveau semantisch niet gedefinieerd en wordt sinds Linux 5.13 om compatibiliteitsredenen als ‘null’ weergegeven; als diagnostische waarde mag het daarom niet op systeemniveau worden geïnterpreteerd. CPU-, memory- en io-PSI geven antwoord op verschillende vragen en mogen niet door elkaar worden gebruikt.

Als een dienst traag reageert bij een laag MemFree-niveau, controleer je eerst MemAvailable en /proc/pressure/memory. Als beide geen afwijkingen vertonen, wijst dit erop dat er geen sprake is van acute systeembrede geheugendruk. Vervolgens kan /proc//status laten zien of het betreffende proces bijvoorbeeld een hoge VmRSS-waarde, veel threads of een opvallende status vertoont. Deze combinatie maakt onderscheid tussen een cache-intensief, maar normaal geheugengebruik en een probleem dat verdere procesanalyse vereist.

Processen, bestandsdescriptoren en schijf-I/O onderzoeken

Voor een veilige oefening met een gegarandeerd aanwezig proces staat $$ voor de PID van de huidige shell. Het status-bestand is beter leesbaar dan het veldgeoriënteerde stat-bestand. Name identificeert het proces, State de status ervan, PPid het ouderproces en Threads het aantal threads. VmRSS is een snelle benadering van het resident geheugen, waarvan de RSS-boekhouding schaalbaar en asynchroon verloopt en daardoor onnauwkeurig kan zijn; VmSize beschrijft daarentegen de virtuele adresruimte. FDSize beschrijft de grootte van de descriptortabel, niet noodzakelijkerwijs het aantal momenteel geopende vermeldingen. Vrijwillige en onvrijwillige contextwisselingen kunnen helpen bij het interpreteren van het schedulinggedrag, maar zijn op zichzelf geen bewijs van een fout.

Terminal
cat /proc/$$/status
ls -l /proc/$$/fd
Afzonderlijke weergave van procesbronnen en systeembrede apparaat-I/O met een geabstraheerde bemiddelingslaag.
Conceptuele illustratie: procesgegevens en I/O van blokapparaten zijn afzonderlijke analyseniveaus die niet direct één-op-één aan elkaar kunnen worden gekoppeld.

De fd-directory bevat symbolische links naar geopende bestanden, pipes, apparaten of sockets. Deze helpt bijvoorbeeld bij het opsporen van een proces dat een verwijderd logbestand nog steeds openhoudt. Een groot aantal geopende bestandsdescriptoren is echter heel normaal bij proxyservers, databases of gebeurtenisgestuurde servers. Voor gefilterde weergaven en toewijzing over processen heen is lsof gebruiken voor het analyseren van geopende bestanden een geschikte aanvulling. Opdrachtregels uit cmdline kunnen vertrouwelijke argumenten prijsgeven; environ is vanwege mogelijke inloggegevens of tokens nog gevoeliger en geen routinevraag.

maps geeft een overzicht van virtuele geheugengebieden met rechten, offset, apparaat, inode en eventueel het pad. smaps vult per mapping gedetailleerde geheugenwaarden aan en biedt in vergelijking met RSS-gegevens een nauwkeuriger, maar ook uitgebreider momentopname. Beide bestanden zijn bedoeld voor diepgaande geheugenanalyses: de uitvoer kan omvangrijk zijn en de interpretatie van afzonderlijke mappings vereist context. Voor een eerste indruk zijn `status` en de systeembrede geheugen- en PSI-bestanden meestal efficiënter.

Bij een hoge belasting en een lage CPU-bezetting breidt /proc/diskstats de diagnose uit naar het apparaatniveau. Het bestand houdt per blokapparaat cumulatieve I/O-statistieken bij. Om de activiteit als snelheid te beoordelen, moeten twee tijdstippen met elkaar worden vergeleken. Daarbij moet een duidelijk onderscheid worden gemaakt tussen fysieke schijven, partities en virtuele of Device-Mapper-apparaten; tellers van verschillende niveaus mogen niet klakkeloos bij elkaar worden opgeteld. Een open bestandsdescriptor van een proces kan daarbij niet direct worden toegewezen aan een diskstats-apparaatteller: het bestandssysteem, de cache en de mappinglagen zitten ertussen. Samen met /proc/pressure/io kan echter worden gecontroleerd of waarneembare I/O-stagnaties en apparaatactiviteit in de tijd samenvallen.

procfs in gebruik: opvragen, monitoring en gegevensbescherming

Voor herhaalbare systeemdiagnoses behandel je procfs-query’s als meetpunten: je noteert het tijdstempel, de systeemcontext en de specifieke query. Veel waarden zijn cumulatieve tellers sinds de start; pas het verschil tussen twee waarden gedeeld door het tijdsinterval levert een snelheid op. Dit geldt bijvoorbeeld voor tellers uit /proc/diskstats. Een afzonderlijke meting kan dus wel activiteit aantonen, maar noch de doorvoer, noch een blijvende verslechtering op betrouwbare wijze kwantificeren.

Een monitoringsysteem moet met vaste tussenpozen onder andere de opgeslagen waarden uit /proc/meminfo, apparaatwaarden uit /proc/diskstats, proces- en systeemstatussen registreren, evenals afdruksignalen indien er kernelondersteuning beschikbaar is. Het moet ruwe waarden omrekenen naar geschikte eenheden, bij tellers verschillen berekenen en geschiedenisgegevens opslaan. In containers mogen globale procfs-waarden niet gelijk worden gesteld aan de resource-limieten van de workload: procespaden kunnen beperkt zijn tot de PID-namespace, terwijl geheugen- of apparaatwaarden deels de host weerspiegelen. Voor limieten en belasting van een groep zijn aanvullende cgroup2-metriek nodig. Alleen tijdseries maken betrouwbare drempelwaarden mogelijk: een hoge waarde kan normaal zijn als deze binnen het verwachte belastingsvenster valt; een plotselinge stijging ten opzichte van de eigen baseline is vaak relevanter. De beschikbare procfs-vermeldingen zijn afhankelijk van de actieve kernel en de configuratie daarvan.

Directe bestanden en hulpprogramma's vullen elkaar aan. ps, top of htop zijn geschikt voor de interactieve procesweergave; free, vmstat, iostat, pidstat, ss en sar Afhankelijk van de installatie verwerken ze gegevens voor specifieke vragen. procfs blijft nuttig als je de kernelbroncode rechtstreeks wilt controleren of een klein, begrijpelijk script wilt schrijven. Voor alarmering en capaciteitsplanning zijn tijdreeksgegevens meestal het meest geschikt.

Ook bij puur leesbare query’s gelden zichtbaarheidsbeperkingen. Toegangsrechten, mount-opties en PID-namespaces kunnen procesgegevens verbergen of beperken tot een containerweergave. Omgekeerd betekent een eigen /proc-mount niet dat elk globaal kernelbestand uitsluitend gegevens van de container bevat. Een ontbrekende procesvermelding of een onverwacht hoge globale waarde is daarom in eerste instantie een aanwijzing om de uitvoeringsomgeving, mount-opties en cgroup-context te verduidelijken.

Diagnosetrajecten voor trage diensten en knelpunten in de systeembronnen

Probleemoplossing begint met een symptoom, niet met een afzonderlijke waarde die vermoedelijk de oorzaak is. Controleer vervolgens ten minste één onafhankelijk signaal en noteer of de waarneming betrekking heeft op de host, een virtuele machine of een container. Zo voorkom je bijvoorbeeld dat je een hoge belasting te snel als een CPU-probleem beschouwt of een groot aantal open descriptoren te snel als een lek bestempelt. De volgende stappen vormen een eerste diagnose en zijn geen vervanging voor applicatiespecifieke logbestanden.

Compacte diagnosepaden met procfs
SymptoomEerst lezenDaarna afstemmenMisverstanden voorkomen
Hoge belasting/proc/loadavg/proc/stat, /proc/pressure/io, /proc/diskstatsDe belasting omvat zowel taken die worden uitgevoerd als taken die in de wachtrij staan, en niet alleen CPU-werk.
Veronderstelde opslaggedruk/proc/meminfo/proc/pressure/memory, /proc//statusEen laag MemFree-gehalte op zich wijst nog niet op een tekort aan RAM; MemAvailable en Stalls spelen ook een rol.
Opvallende I/O-wachttijd/proc/stat/proc/pressure/io, /proc/diskstats op twee meetpunteniowait is geen directe latentiemeting en kent gedocumenteerde beperkingen.
Veel geopende bestanden/proc/sys/fs/file-nr en /proc/sys/fs/file-max/proc//fd, gedrag van de dienstVeel descriptoren kunnen voor een server normaal zijn; grenzen en groei zijn belangrijker.
De dienst start niet/proc//status, voor zover er een proces ontstaat/proc//fd, servicelogboek, bezette bronnenEen onzichtbaar proces kan zijn beëindigd of buiten de zichtbare PID-naamruimte draaien.

Bij een hoge Load Average controleer je eerst of dit wordt veroorzaakt door actieve of wachtende taken. De load-cijfers geven gemiddelden weer over één, vijf en 15 minuten en houden rekening met zowel R- als D-toestanden. Vergelijk CPU-tijdvelden daarom alleen met de nodige voorzichtigheid met I/O-druk en apparaatactiviteit. Met name iowait mag niet losstaand worden opgevat als geheugenlatentie.

Bij een trage uitvoering en een kleine MemFree is MemBeschikbaar de betere eerste contextwaarde. Voeg de PSI-gegevens voor het geheugen en de status van het betreffende proces toe, zoals de VmRSS, het aantal threads en de toestand. PSI maakt bij geheugen en I/O onderscheid tussen some voor gedeeltelijk geblokkeerde taken en full voor volledige blokkering van niet-idler-taken. Als PSI-bestanden ontbreken, kan dit te wijten zijn aan de kernelconfiguratie of de omgeving; dit sluit een bottleneck niet uit.

Voor bestands- en procesdiagnoses kunnen rechten en PID-naamruimten de informatiewaarde beperken. In containers beschrijft /proc vaak alleen de toegewezen procesomgeving. Bij geweigerde toegang of onvolledige mappen moet je daarom de gebruikersrechten, de procfs-mountopties en de namespace-context controleren voordat je uit de afwezigheid van gegevens een technische conclusie trekt.

Typische misvattingen rechtzetten en de juiste gereedschappen kiezen

Vier misvattingen leiden bij het beheer van Linux vaak tot verkeerde maatregelen. Weinig MemFree betekent niet automatisch een tekort aan RAM, omdat de kernel het geheugen onder andere als cache gebruikt; voor nieuwe toepassingen is MemAvailable de meer betrouwbare schatting. Een hoge load wijst niet op CPU-verzadiging, aangezien ook taken die ononderbroken in de wachtrij staan, hierin worden meegerekend. Een hoog iowait-aandeel geeft geen indicatie van de directe latentie van een opslagmedium. En procfs is niet overal identiek: kernelversie, configuratie, hardware, modules en namespaces beïnvloeden bestanden en velden.

Kies de methode op basis van de vraag. Voor een gerichte oorzakenanalyse biedt procfs directe ruwe gegevens van de actieve kernel. Voor een snel, voor mensen leesbaar overzicht zijn gespecialiseerde opdrachtregelprogramma’s doorgaans efficiënter. Als trends, alarmering of beslissingen over capaciteit van belang zijn, heb je monitoring nodig die meetpunten in de tijd ordent, verschillen in tellerstanden berekent en historische vergelijkingswaarden bijhoudt. Bij resourcebeperkingen van afzonderlijke diensten of containers vult een analyse op cgroup-niveau het globale hostoverzicht aan; PSI kan bij een passende configuratie ook per cgroup beschikbaar zijn.

Bijzondere terughoudendheid geldt voor /proc/sys. Het uitlezen van een parameter is diagnostisch; het wijzigen ervan beïnvloedt het actieve gedrag van de kernel. Wijzig een waarde alleen als de oorzaak duidelijk is, de oorspronkelijke waarde is gedocumenteerd, de gevolgen waarneembaar zijn en er een terugweg is. De mappen fs, vm en net ordenen parameters thematisch, maar bieden geen universele afstemmingsrichtlijnen.

Het voorbeeld drop_caches laat het verschil zien tussen ingrijpen en optimaliseren: de kernel-documentatie beschrijft de interface als niet-destructief, waarschuwt echter voor prestatieproblemen en raadt het gebruik ervan af als reguliere operationele maatregel buiten test- of debug-scenario’s. Een voorzichtige regel luidt daarom: eerst meten, vervolgens een onderbouwde wijziging op beperkte schaal doorvoeren, de effecten en bijwerkingen observeren en de beslissing documenteren.

Bronnen en stand van zaken op vakgebied

Stand van het onderzoek:

Stand van zaken: 22 september 2026. De zichtbare procfs-paden en -velden kunnen variëren, afhankelijk van de kernelversie, configuratie, hardware, naamruimten en machtigingen. De kernel-documentatie die voor drop_caches en netwerkparameters is gebruikt, is versiespecifiek; raadpleeg bij een afwijkende kernelversie de documentatie van de gebruikte kernel.

https://docs.kernel.org/filesystems/proc.html

https://docs.kernel.org/admin-guide/sysctl/

https://docs.kernel.org/admin-guide/sysctl/fs.html

https://docs.kernel.org/5.17/admin-guide/sysctl/vm.html

https://docs.kernel.org/7.1/admin-guide/sysctl/net.html

https://man7.org/linux/man-pages/man5/proc_loadavg.5.html

https://www.man7.org/linux/man-pages/man5/proc_stat.5.html

https://www.man7.org/linux/man-pages/man5/proc_meminfo.5.html

https://docs.kernel.org/accounting/psi.html

https://man7.org/linux/man-pages/man5/proc_pid_status.5.html

https://man7.org/linux/man-pages/man5/proc_diskstats.5.html

Huidige artikelen

Conceptuele weergave van kerneltoestanden die via procfs zichtbaar worden.
Administratie

Linux procfs voor beheerders: een overzicht van belangrijke bestanden

procfs biedt direct inzicht in de actieve Linux-kernel. Deze handleiding geeft uitleg over belangrijke bestanden in /proc, geeft een overzicht van tellers en momentopnames en toont betrouwbare diagnosemethoden voor belasting, geheugen, processen, I/O en sysctl-parameters.

Conceptuele weergave van een primaire server met twee replica’s en een continue replicatiestroom.
Databases

Inzicht in de replicatie-achterstand van Redis: PSYNC, omvang en HA-beperkingen

De Redis Replication Backlog houdt een beperkt deel van de replicatiestroom vast. Hierdoor is na korte verbindingsonderbrekingen vaak PSYNC mogelijk in plaats van een volledige resync, maar het is geen vervanging voor persistente gegevensopslag of een doordacht concept voor hoge beschikbaarheid.