- Linux kasutab vahemälude ja lehekülgede vahemälu jaoks kogu saadaolevat RAM-i, seega väike vaba mälu ei tähenda tingimata probleemi olemasolu.
- Swapi, zram/zswapi ja õige vm.swappiness seadistuse kombinatsioon võimaldab teil tasakaalustada jõudlust ja stabiilsust.
- cgroup v2, systemd-oomd ja tööriistad nagu earlyoom või nohang pakuvad täpset kontrolli mälukoormuse ja OOM-sündmuste üle.
- Jälgimine tasuta, vmstat, htop, sar või Glances abil on pudelikaelte tuvastamise ja mäluhalduse optimeerimise võti.

Kui haldate süsteeme, töötate konteineritega või hooldate tootmisservereid, pole Linuxi mäluhalduse põhjalik mõistmine enam valikuline. See on erinevus serveri ja serveri vahel, mis saab koormuspiikidega tõrgeteta hakkama, ning serveri vahel, mis raskustega toime tuleb, läheb masendusrežiimi või käivitab kardetud OOM-tapja halvimal võimalikul hetkel.
Linux on loodud muutmälu võimalikult tõhusalt kasutama: see vahemällu salvestab faile, tihendab lehti, liigutab andmeid vahetusmälusse ja prioritiseerib protsesse vastavalt väga täpsetele poliitikatele. Väljastpoolt võib tunduda, et see "tarbib palju mälu" või et "vaba muutmälu pole kunagi", kuid tegelikkuses püüab see pakkuda maksimaalset jõudlust ja stabiilsust . Vaatame samm-sammult ja natuke lihtsate selgitustega, kuidas see kõik töötab ja kuidas seda täiustatud viisidel peenhäälestada saab.
Linuxi mälu põhimõisted ja müüdid

Enne kerneli parameetritega jamamist või zram'i paigaldamist nii, nagu homset poleks tulemas, on hea mõte omada selget ettekujutust mälutüüpidest, arhitektuurist ja sellest, kuidas süsteem RAM-i näeb.
Arvuti maksimaalse füüsilise mälu mahu määrab operatsioonisüsteem ja protsessori arhitektuur. 32-bitise süsteemi RAM-i maht on tavaliselt piiratud 4 GB-ga, samas kui 64-bitine süsteem saab hõlpsasti hakkama kümnete või sadade gigabaitidega (teoreetiliselt palju rohkem, kuigi tegeliku piirangu kehtestab riistvara).
Linuxis hallatakse kogu mälu virtuaalmäluna . See hõlmab nii füüsilist RAM-i kui ka saalemälu. RAM-i ei saa "venitada" ilma füüsiliste moodulite lisamiseta, kuid virtuaalmälu saab laiendada ketta (partitsioonide või saalefailide) ja täiustatud mehhanismide, näiteks zram või zswap abil.
La füüsiline mälu (RAM) See on kiire ja kallis ressurss: sinna laaditakse protsessid, teegid, failide vahemälud, sisend-/väljundpuhvrid, jagatud mälu jne. Linuxil on väga selge filosoofia: kui on vaba muutmälu, on parem seda vahemäluna kasutada ja juurdepääsu kiirendada, kui seda tühjaks jätta. Seetõttu on tööriistades, nagu free See ei tähenda, et sul probleem on.
Kettamälu ( püsiv salvestusruum) on palju aeglasem. Kui RAM reageerib nanosekundites, siis isegi SSD reageerib mikrosekundite või millisekunditega. Seetõttu püüab süsteem hoida sageli kasutatavaid andmeid RAM-is ja pöördub ketta poole ainult siis, kui see on hädavajalik: käivitatavate failide laadimiseks, külmade andmete lugemiseks või lehtede vahetamiseks.
Virtuaalmälu, lehed ja sisemised kerneli struktuurid
Virtuaalmälu on mehhanism, mille abil Linux annab igale protsessile oma isoleeritud ja kaitstud aadressiruumi . Riistvara ja kernel teisendavad virtuaalsed aadressid füüsilisteks aadressideks struktuuride kaudu, mida nimetatakse leheküljetabeliteks.
Väikseim mälu haldamiseks kasutatav üksus on leht , mis on tavaliselt 4 KB. Kogu virtuaalmälu süsteem keerleb lehtede ümber: neid eraldatakse, vabastatakse, vahetatakse, vahemällu salvestatakse ja neile antakse erinevad õigused (kirjutuskaitstud, käivitatavad jne).
Leheküljetabelid on kerneli hallatavad hierarhilised struktuurid. Need salvestavad iga protsessi iga virtuaalse lehe kohta tegeliku füüsilise lehe asukoha (kui see on olemas), selle õigused ja praeguse oleku. See teisendus võimaldab protsesse isoleerida, lehti nende vahel jagada ja faile otse mällu kaardistada.
Kui protsess pääseb ligi kehtivale aadressile, kuid leht pole juurdepääsuks valmis, tekib lehe viga . See võib olla kerge (leht on RAM-is, kuid olekus, mis vajab uuendamist) või kulukas (leht on kettal, vahetusmälus või failis ja see tuleb RAM-i viia). Kui lehe vigu esineb sageli, aeglustub süsteem, kuna see kulutab liiga palju aega kettalt lugemisele.
Lehekülgede vahemälu on kerneli hallatav faililehekülgede vahemälu. See salvestab failide ja kataloogide andmeid ja metaandmeid, et vähendada kettale juurdepääsu. See on üks põhjusi, miks Linux "näib" kasutavat kogu RAM-i: tegelikkuses kasutab see mälu, mida rakendused aktiivselt ei kasuta, et kettale juurdepääsu kiirendada.
Mälu tüübid: failidega tagatud, anonüümne ja kuidas need on seotud swapiga
Linuxis tehakse tavaliselt vahet failimälu ja anonüümmälu vahel . Mõlemad asuvad RAM-is, kuid nende päritolu ja võimalik varundamine kettale on erinevad.
Kõne failimälu See on see, mida varundavad süsteemifailid: käivitatavad binaarfailid, jagatud teegid, kaardistatud andmed koos mmap failist jne. Vajadusel saab selle mälu eemaldada ja algsest failist uuesti laadida.
La anonüümne mälu See on kõik, mida protsess reserveerib ja mis pole failiga seotud: dünaamiline kuhi, pinu, privaatpiirkonnad koos MAP_ANONYMOUSja kirjutamisel kopeeritud alad fork()See mälu eksisteerib ainult RAM-is (või swap-mälus, kui seda liigutatakse) ja selle ainus võimalik varukoopia on just see swap-mälu.
Kui kernel vajab muutmälu vabastamist, proovib see kõigepealt vabastada lehekülgi, mida saab uuesti kokku panna: tavaliselt lehekülgi lehekülgede vahemälust või failidega tagatud piirkondadest. Alles siis, kui ruumi enam pole või mälukoormus on väga suur, hakkab see anonüümset mälu swap-mälusse lükkama , mis on palju kallim, aga annab süsteemile võimaluse.
Mälu surve, peksmine ja oom-tapja
Mäluprobleem tekib siis, kui vabade lehekülgede arv langeb alla teatud sisemiste lävede. Seejärel on kernel sunnitud pidevalt mälu vabastamise nimel töötama: tühjendama vahemälu, kirjutama kettale määrdunud lehekülgi, eemaldama harva kasutatavaid lehekülgi jne.
Suur mälukoormus võib põhjustada väga selgeid sümptomeid: suur latentsus veebiteenustes , aeglased graafilised liidesed, viivitatud vastused kaugseanssidelt (SSH, VNC, RDP), katkendlik hiir, aknad, mille reageerimine võtab sekundeid jne. Sel hetkel keskendub süsteem rohkem ellujäämisele kui kasuliku töö tegemisele.
Lehekülgede läbipõlemine toimub siis, kui muutmälust (RAM) ei piisa protsesside pidevalt kasutatavate lehtede hoidmiseks. Kernel hakkab lehti pidevalt vahetama: see eemaldab ühe, et lisada teine, kuid vajab koheselt äsja eemaldatud lehekülge. Tulemuseks on lehevigade ja kettale juurdepääsude tsükkel, mis halvendab jõudlust.
Kui swap on lubatud, tähendab thrashing seda, et anonüümsed lehed liiguvad edasi-tagasi RAM-i ja swap-ruumi vahel, küllastades ketast. Ilma swap'ita kandub probleem üle faililehtedele: need visatakse ära ja laaditakse failisüsteemist korduvalt uuesti, mis võib muuta masina praktiliselt kasutuskõlbmatuks.
Kui kernel ei suuda ikka veel vaba mälu hankida, tuleb mängu järgmine: Mälu otsa saamise (OOM) mehhanismKui kõik, mida saab eemaldada, tihendada või vahetada, on ammendatud, arvutab kernel iga protsessi jaoks skoori (oom_scoreja otsustab, millise ohverdada. Selle protsessi viib lõpule OOM-i tapja et vabastada märkimisväärne hulk RAM-i ja vältida täielikku krahhi.
Vahetus: mis see on, kui palju sinna panna ja miks see pole "kurat"
Vahemälul (swap memory) on halb maine, osaliselt aegunud nõuannete ja lihtsustatud versioonide, näiteks "kui sul on palju muutmälu, siis pole vahetatavat mälu vaja". Tegelikkuses on vahetatav mälumaht Linuxi mälu disaini võtmekomponent, isegi süsteemides, kus on palju muutmälu.
Vahetusmälu (swap) on kettal (partitsioonil või failil) asuv ala, mida kernel kasutab mitteaktiivsete mälulehekülgede salvestamiseks . See võimaldab tal vabastada RAM-i protsessidele, mis seda tegelikult vajavad. See ei ole virtuaalmälu ise, vaid üks mehhanismidest, mis seda võimaldab.
Ilma swap-mäluta pole anonüümsetel lehtedel mälukoormuse suurenedes kuhugi minna. Kernel saab endiselt toetuda vahemäludele ja failidega tagatud lehtedele, kuid niipea kui anonüümse mälu maht muutub kriitiliselt kõrgeks, on see praktiliselt sunnitud OOM-tapja palju varem käivitama. Tehniliselt saab Linux toimida ka ilma swap-mäluta, kuid praktikas on see enamikus stsenaariumides tarbetu risk.
Vahetusruumi suuruse määramisel pole ühte kindlat retsepti, kuid olenevalt masina rollist on olemas mõned üsna mõistlikud kaasaegsed kriteeriumid :
- Serverid ilma talveunerežiimita4–8 GB vahetusmälu on tavaliselt puhvermäluks piisav isegi rohke RAM-i korral. Mälumahukaid teenuseid (andmebaasid, virtualiseerimine) kasutades saab seda suurendada 1,5 korda RAM-i mahust, kuid prioriteediks peaks olema füüsilise RAM-i suurendamine.
- Lauaarvutid ilma talveunerežiimita16 GB või suurema muutmälu korral on 2–4 GB swap-mälu turvavõrguna enam kui piisav.
- Talveunerežiimi toega seadmedVahetusmälu suurus peab olema võrdne või veidi suurem kui RAM, sest süsteem kopeerib talveunerežiimis kogu mälu sisu sinna.
Vahetusruumi loomine on väga paindlik. Võite kasutada spetsiaalset partitsiooni või vahetusfaili . Vahetusfail on ideaalne, kui teie ketas on juba partitsioonideks jaotatud või soovite suurust muuta ilma kogu süsteemi ümber konfigureerimata.
Mälumõõdikud: tasuta, vmstat, ps, RSS, PSS ja palju muud
Klassikalised Linuxi mäluhaldustööriistad võivad põhjustada väärtõlgendamisi, kui te ei tea, mida iga veerg tähendab. Käsk free -h See on lihtsaim viis näha lühidalt kogu mälu, kasutatud mälu, vaba mälu, vahemälu ja swap-mälu.
Väljapääsu juures free Oluline on vaadata rida, mis arvestab puhvreid ja vahemälu, sest see veerg näitab protsesside poolt tegelikult hõivatud mälu, arvestamata seda, mida kernel vahemäluna kasutab ja mida see saab vajadusel kiiresti vabastada.
koos vmstat -s -S M Saate üksikasjalikuma kokkuvõtte: kogu mälu, kasutatud mälu, vaba mälu, aktiivne mälu, jõudeoleku mälu, vahetusmälu jne. Samuti saate vaadata /proc/meminfo et iga mõõdikut detailselt näha, kuigi väljund on kuivem ja vähem kasutajasõbralik.
Et teada saada, millised protsessid mõjutavad RAM-i kõige rohkem, ps aux kuvab veerge nagu VSZ (kogu virtuaalmälu, mida protsess saaks kasutada, kui see laadiks kõik) ja RSS (Residentsete komplektide suurus, tegelik mälumaht RAM-is). Märkus: RSS hõlmab ka jagatud teegi mälu, mida loendatakse mitu korda, kui seda kasutab mitu protsessi.
Siin tuleb mängu PSS (proportsionaalne komplekti suurus)mis jaotab jagatud teekide maksumuse neid kasutavate protsesside vahel. PSS-i hõlpsaks hankimiseks on olemas sellised tööriistad nagu smem, väga kasulik, et näha, millised rakendused on tegelikult "andmehunnikud", ilma et andmeid jagatud teekide tõttu moonutataks.
Mälu fragmenteerimine, pinu, kuhja ja ulimit
Teine vähem nähtav mäluhalduse aspekt on fragmenteerimine . Me võime rääkida sisemisest fragmenteerimisest (kui ümardatud plokid eraldatakse 4, 8 või 16 baidise kordsetena, jättes järele kasutu tüki) ja välisest fragmenteerimisest (kui vaba mälu on olemas, kuid see on jagatud väikesteks tükkideks, mis takistavad suure külgneva jaotuse kasutamist).
Sellistes rakendustes nagu Redis võib mõnikord näha erinevusi süsteemi (RSS) teatatud mälu ja rakenduse enda poolt kasulikuks peetava mälu vahel (used_memory). See vahemaa on tavaliselt suuresti tingitud väline killustatus, lüngad, mida süsteem loeb hõivatuks, kuid protsess tegelikult ei kasuta.
Protsessi mälu jaguneb kontseptuaalselt järgmisteks osadeks: virna ja kuhjaStacki kasutatakse kohalike muutujate ja funktsioonikõnede jaoks, samas kui heapi kasutatakse dünaamiliste jaotuste jaoks. malloc() ja sarnased. Kui andmestruktuurid kasvavad pinu mahutavuse piiridest suuremaks, tõmmatakse need kuhjast välja ja käsitletakse pointerite abil.
Protsessi maksimaalset pinu suurust saab reguleerida ulimit -a ja süsteemi konfiguratsioonid. Selle vähendamine piirab suurte lokaalsete muutujate arvu, suurendamine aga võimaldab rohkem muutujaid või sügavat rekursiooni. Selle parameetri muutmine aitab paremini kontrollida mälukasutust ja vähendada teatud tüüpi killustumist, kuigi see pole imerohi.
Täiustatud jälgimine ja diagnostika: top, htop, vmstat, sar ja palju muud
RAM-i tarbivate protsesside leidmiseks võite alustada top Ja kui soovite midagi kasutajasõbralikumat, siis htopViimane kuvab protsessori, mälu ja swap-ketta kasutusribasid ning võimaldab protsesse interaktiivselt sorteerida ja filtreerida.
Debianis ja selle derivaatides installige htop koos sudo apt install htopAlmaLinuxis ja teistes Red Hat'i sarnastes süsteemides koos sudo dnf install htopKui olete sees, saate sortida mälu järgi, otsida konkreetseid protsesse ja tappa probleemseid ülesandeid otse liidesest.
Põhjalikumaks analüüsiks ja partiitöötluseks vmstat 5 See annab regulaarselt teavet protsesside, mälu, lehekülgimise, plokkide sisend-/väljundi, katkestuste ja protsessori ajastamise kohta. See on ideaalne mälukoormuse aja jooksul muutumise jälgimiseks.
Jätkamine sysstat See sisaldab selliseid tööriistu nagu sarmis võimaldavad teil salvestada ja analüüsida mälu ja muude ressursside kasutamist. Näiteks sar -r 1 5 See kuvab mälu ja swapi kasutust iga sekund, viis korda. Debiani puhul on see installitud koos sudo apt install sysstatja AlmaLinuxis koos sudo dnf install sysstat.
Kui vajate sügavat kerneli tasemel silumist, bpftrace See on võimas eBPF-il põhinev tööriist. See võimaldab teil instrumenteerida süsteemikõnesid, jälgida mälule juurdepääsu ja tuvastada kitsaskohti ilma uuesti kompileerimise või taaskäivitamiseta. Tavaliselt installitakse see koos sudo apt install bpftrace Debiani-laadsetel süsteemidel.
Praktiline mäluhaldus: swap, swappiness ja vahemälu puhastamine
Paljude serverite põhiülesanne on kontrollida vahetuse praegune seis. Koos swapon --show Sul on nimekiri aktiivsetest vahetusseadmetest ja -failidest, nende suurusest, tüübist ja prioriteedist. Kui sul on vaja vahetust lennult lisada, saad luua faili, millel on fallocate, kindlustage load koos chmod 600, vormindage see mkswap ja aktiveerige see swaponSelle püsivaks muutmiseks lisage lihtsalt vastav kirje /etc/fstab.
Parameeter vm.swappiness See kontrollib, kui kergesti kernel prioriseerib swapi kasutamist RAM-i täitmise jätkamise ees. See jääb vahemikku 0 kuni 100. Madalad väärtused (10–20) põhjustavad süsteemi swapi vältimist kuni absoluutse vajaduseni, samas kui suured väärtused (60 või rohkem) julgustavad süsteemi lehti vahetamiseks kergemini liigutama, et säilitada vaba RAM-i.
Aeglaste ketaste või suurte andmebaasidega serverites pakub see sageli huvi vähenda vahetustNäiteks 10 või 20-ni koos sudo sysctl vm.swappiness=10Kiirete zram-mälupulkade või SSD-ketastega lauaarvutite puhul võivad vahepealsed väärtused, näiteks 30–60, pakkuda head tasakaalu latentsuse ja mälukasutuse vahel.
Hea mälu korral on mõnikord vaja sundida vahemälu vabastamine koos sudo sync && sudo sysctl -w vm.drop_caches=3See tühjendab suure osa lehe vahemälust ja dentridest. See on aeg-ajalt kasulik testimiseks või mälu vabastamiseks väga piiratud süsteemides, kuid seda ei tohiks rutiinselt kasutada, sest see kaotab ka vahemällu salvestamise pakutava jõudluse paranemise.
Täiustatud juhtimistööriistad: cgroup v2, memory.pressure ja OOM kasutajaruumis
Tänapäevastes süsteemides, mis kasutavad systemd ja cgroup v2 , saab mäluhaldust protsessirühmade abil peenhäälestada. cgroup v2 korraldab ülesanded hierarhiatesse ning rakendab ressursipiiranguid ja prioriteete (protsessor, mälu, sisend/väljund) rühma tasandil, mitte ainult üksiku protsessi tasandil.
Mäluhierarhias on parameetrid, näiteks memory.low Need võimaldavad teil määrata, et teatud c-rühmade mälu peaks olema globaalse surve eest paremini kaitstud, samas kui teised võivad olla kuluvamad, kui RAM-i on vaja vabastada.
Fail memory.pressure See paljastab väga kasulikke mõõdikuid: kui kaua on selle cgroupi ülesanded mälu puudumise tõttu blokeeritud olnud, 10, 60 ja 300 sekundiliste intervallidega. Variant mõned See näitab, kas vähemalt üks ülesanne on edasi lükatud, ja täis See peegeldab hetki, mil kõik grupi ülesanded olid samaaegselt mõjutatud.
Lisaks kerneli OOM-tapjale on tekkinud ka kasutajaruumi lahendusi, näiteks varajane tuba, nohang o systemd-oomdEarlyOOM jälgib RAM-i ja swap-mälu ning kui need langevad alla teatud läve, siis see peatab ennetavalt protsessid. oom_score kõrgem, taastades kasutatavuse enne masina hangumist.
NoHang läheb sammu võrra kaugemale: see toetab rohkem valikukriteeriume , arvestab mälukoormusega ja integreerub hästi täiustatud konfiguratsioonidega, kuigi selle arenduses on olnud tõuse ja mõõnasid. Samal ajal integreerub systemd-oomd otse systemd ja cgroup v2-ga ning on praegu paljudes distributsioonides eelistatud valik mälupuuduse intelligentsemaks ja detailsemaks haldamiseks.
Modern Swap: zram, zswap ja seadme prioriteedid
Lisaks "klassikalisele" kettavahetusele pakub Linux kaasaegseid mehhanisme, mis parandavad oluliselt jõudlust, kombineerides RAM-i tihendamist ja valikulist ketta kasutamist.
zram on kerneli moodul, mis loob RAM-is endas plokkseadmeid, kus lehed salvestatakse tihendatud olekus. Neid kasutatakse tavaliselt ülikiirete vahetusseadmetena: tihendamine ja lahtipakkimine tarbivad küll osa protsessori võimsusest, kuid saate juurde loogilise mälu mahtu ja vähendate drastiliselt ketta kasutamist.
Paljudes distributsioonides piisab installimisest zram-tööriistad o zram-generaator ja lubage selle teenus. Näiteks Debianis saate kasutada sudo apt install zram-tools ja aktiveerige zramswap systemd-ga. AlmaLinuxis koos sudo dnf install zram-generator ja sellele vastav teenus.
zswap seevastu toimib tihendatud vahemäluna ketta vahetusmälu ees . Esmalt proovib see vahetatud lehti salvestada tihendatud muutmälusse; alles siis, kui see vahemälu on täis või lehed muutuvad mitteaktiivseks, kirjutab see tegelikku vahetusalasse. See vähendab ketta sisend-/väljundvõimsust ja pikendab SSD-de eluiga, kuid vähendab teatud määral protsessori koormust.
Mitme vahetusseadme (nt zram ja kettafail) kombineerimisel on oluline reguleerida prioriteetidele. Koos swapon -p või võimalus pri= en /etc/fstab Sina määrad, millist seadet tuleks esimesena kasutada. Tavapärane praktika on anda zramile kõrge prioriteet (näiteks 100) ja kettavahetusele madalam prioriteet (10), et kernel saaks enne kettale juurdepääsu täiel määral ära kasutada RAM-is olevat tihendatud vahetusruumi.
Serveritele rakendatud mäluhaldus: vahetus, teenused ja turvalisus
Veebiserverites (Apache, Nginx), andmebaasides (MySQL, MariaDB, MongoDB) või ressursimahukates rakendustes on mälu kriitilise tähtsusega ressurss. RAM-i ja swap-mälu konfiguratsioon määrab otseselt, kui palju samaaegseid päringuid saab enne süsteemi probleemide tekkimist käsitleda.
Selliste andmebaasimootorite nagu MongoDB puhul on ülioluline, et füüsilise muutmälu maht ületaks andmebaasi nõudeid ; vastasel juhul hakkab see kasutama saalemälu ja jõudlus langeb järsult RAM-i ja ketta juurdepääsu vahelise olulise erinevuse tõttu. Sama kehtib ka MySQL/MariaDB kohta, kus sellised tööriistad nagu MySQLTuner soovitavad mäluparameetreid saadaoleva muutmälu põhjal.
Mälu raiskamise vältimiseks on soovitatav peatada kasutamata teenused ning puhastada konteinerid, pildid ja Dockeri köited, mida enam vaja pole. Arendus- ja kvaliteedikontrolli keskkondades on väga lihtne koguneda unustatud ressursse, mis varastavad gigabaite muutmälu ja kettaruumi, ilma et keegi seda märkaks.
Turvalisus mängib samuti rolli: mittevajalikud pordid avatud Need suurendavad rünnakupinda. Süsteemi imbunud pahavara võib näiteks käivitada protsessorit ja mälu tarbivaid kaevandavaid protsesse, ajastada ülesandeid crontab ja süsteemi krahhida. Sissetulevate ja väljaminevate portide kontrollimine, kõige mittevajaliku sulgemine ja kahtlaste cron-tööde puhastamine on osa süsteemi põhihügieenist, mis kaitseb ka mäluressursse.
Mälu- ja failisüsteemid: ext4, XFS, Btrfs ja päevikuhaldus
Kuigi see võib tunduda eraldi küsimusena, mõjutab failisüsteemi valik ja selle konfiguratsioon samuti mälu käitumist ja sisend-/väljundkoormust. Näiteks Ext4 kasutab ajakirja, mis olenevalt koormusest võib kettale ja sellest tulenevalt ka vahemälu haldamisele lisakoormust avaldada.
Nõudlikes serverikeskkondades valivad paljud administraatorid XFS-i või isegi Btrfs-i . XFS toimib tavaliselt väga hästi suurte failide ja suure jõudlusega süsteemidega. Btrfs pakub täiustatud funktsioone, nagu hetktõmmised, läbipaistev tihendamine ja alamköited, kuid see on teatud keerukuse hinnaga ja olenevalt versioonist ja levitamisest ka küpsusastmega, mille üle kõigi töökoormuste puhul endiselt vaieldakse.
Kernel kohandab oma vahemällu salvestamise ja mahakirjutamise poliitikat failisüsteemi omadustega, seega üleminek ext4-lt XFS-ile või Btrfs-ile mõjutab mitte ainult toor-I/O-d, vaid ka seda, kuidas RAM-i ja lehe vahemälu lugemis- ja kirjutamisoperatsioonide puhverdamiseks kasutatakse.
Olulised graafilised tööriistad ja utiliidid administraatoritele
Kuigi terminal on iga administraatori peamine nuga, on olemas tööriistu, mis muudavad mälu ja ressursside haldamise palju lihtsamaks . Üks neist on Glances – reaalajas monitor, mis kuvab protsessori, mälu, ketta, võrgu ja protsessid ühel ekraanil ning millel on valikuline veebiliides mitme serveri jälgimiseks brauserist.
Debiani kiireks installimiseks tehke lihtsalt... sudo apt install glancesPilgud sobivad väga hästi kokku htop, vmstat y sar, andes visuaalsema ülevaate süsteemi käitumisest koormuse all.
Graafilise serverihalduse valdkonnas pakub Cockpit kasutajasõbralikku veebiliidest mälu, protsesside ja teenuste jälgimiseks . See võimaldab teil hallata mitut serverit ühest konsoolist, käivitada ja peatada systemd üksusi, jälgida swap- ja zram-mäluseadmete kasutamist ning vaadata logisid brauserist lahkumata.
Lauaarvutisüsteemides integreerivad paljud distributsioonid oma ressursimonitori, kuid keskkondades, kus puudub graafiline kasutajaliides või kus soovite midagi kergemat, annab nende konsoolitööriistade kombineerimine kohandatud skriptidega suurepärase ülevaate sellest, mis mäluga igal ajahetkel toimub.
Linuxi mälu õige haldamine hõlmab mõistmist, kuidas kernel RAM-i kasutab, swap-i, zram-i ja zswap-i rolle, kuidas cgroup v2 ja erinevad oom-id reageerivad koormusele ning millised tööriistad on süsteemi jälgimiseks ja peenhäälestamiseks olemas. Kui kõik need tükid kokku panna – alates free'ist, vmstatist, PSS-ist ja memory.pressure'ist kuni zram-i, swappiness'i ja systemd-oomd-ni –, siis lõpetate "Linuxi RAM-i tarbiva" probleemiga võitlemise ja teil on peenhäälestatud, stabiilne süsteem, mis suudab maksimeerida riistvara jõudlust mis tahes rollis: server, töölaud või suure koormusega keskkond.