Memória, és ami mögötte van

Albert, a kereső Linux alá

A Linux telepítés után manapság divatos, de teljesen felesleges munka a memória fogyasztást vizsgálni. Kinek kisebb a fogyasztása, annak nagyobb… a tehetsége a Linux terén. Legalábbis sokan ezt vélik. Régen az uptime volt a mérték, jelenleg pedig egy új irány alakul ki: minél kevesebb csomag, annál jobb a telepítés. Mindhárom vicces egy asztali gépen, hiszen az uptime mit mond egy asztali gépen, amit esetleg, ha elmész a géptől, kikapcsolod… a csomagszám sem sokat számít, mert már nem egy havi fizetés egy 20megás merevlemez… a memória alapjárati fogyasztása is nagyon jó ha alacsony, mert ha 400mega, akkor a megszokott 8-32gigából sokkal, de sokkal többet foglal, mintha 350mega lenne. Sokszor látom, hogy asztali gépen napokat töltenek el a minimalizáláson, majd indítanak egypár chrome munkamenetet, ami alapból egy, vagy több giga memóriát lefoglal.

Oké, felvezetésnek ennyi. Térjünk rá alapszinten a Linux memória használatára. Alapszinten, mert nem fogunk nagyon belemenni, csak olyan szinten, hogy ne ess pánikba, ha meglátod valamelyik memória kijelző programnál, hogy sokat fogyaszt és már majdnem el is fogyott a memóriád. Pár fontos tényt érdemes ismerni, még akkor is, ha nem érdekel a dolog.

A Linux nagyon hatékonyan kezeli a memóriádat

Ez két fontos tényt jelent. Nekem, mint egyszerű felhasználónak, alig van teendője a memória fogyasztás kezelésével. Ha nincs kifejezett célod, és megfelelő ismereted ezen téren semmit nem kell állogatnod, finomhangolnod, és pontosítanod. Sokkal jobban jársz, ha optimalizálod a programhasználati szokásaidat, mintha napokon keresztül googlizol, hogy lefaragj pár megát a használatból. Ha kevés a memóriád, akkor jobb, ha bezársz egy akkor nem használt programot, kevesebb lapot nyitsz meg egyszerre a böngészőben.

A másik tény, amit észben kell tartani: ha hagyod a Linuxot a saját tempójában, saját rendszere szerint működni addig, amíg ténylegesen ki nem fogy a memóriából, addig úgy bűvészkedik vele, hogy a lehető legoptimálisabb legyen.

Sokat fogyaszt, pedig nem is használok semmi programot!

Igen, és nem. Mert a Linux nem csak a futó programokat tartja a memóriában. Hm… akkor mit? Egy fura, de nagyon hasznos dolgot használ: lemez gyorsítótárazást. Ha ennek a technikai és egyéb fele érdekel, akkor googlizz rá, és hamar sok érdekes infót kapsz a témában. Egyszerű felhasználónak ezzel kapcsolatban alapszinten annyit kell tudni, hogy ez a lemez műveleteket gyorsítja, és hatékonyabbá teszi a működést. A memória sokkal, de sokkal gyorsabb, mint akármelyik, asztali gépen elérhető adathordozó. Így ha lemezeinknek pld. a fájlműveletekhez kölcsönöz egy területet, akkor azok gyorsabbak lesznek. Ezt nem érzed, hiszen eddig is így működött a dolog, csak nem tudtál róla. Emlékszel a /tmp könyvtárnál leírtakra? 🙂

A lemezgyorsítótár gyorsabbá és érzékenyebbé teszi a rendszert! Semmi hátránya nincs, csak egy: ha nem tudsz róla, akkor rácsodálkozol, hogy semmi nem fut, leállítottál mindent és mégis mennyi „sokat” eszik a Linux. A lemezgyorsítást, azaz a memória foglalást saját hatáskörben végzi. A mérete nagyban függ a fizikai memória méretétől. Így ha 2giga a memóriád, kevesebbet foglal le, és többet, ha 32-64 gigát raksz bele. Így már látszik, hogy ugyanaz a rendszer több alapfogyasztást produkál egy jó, mai gépen, mint egy őskövületen, minimális RAM mellett. Szóval, ha valaki meglepően kis alapjárati fogyasztást emleget, lehet, hogy nagyon jól konfigurált szervert üzemeltet, vagy van egy tízen-egypár éves gépe, amit már három helyen leselejteztek, egy giga RAM-mal.

Mi van, ha több alkalmazást szeretnék futtatni?

A lemezgyorsítás miatt kifuthatsz a memóriából? Nem. Amikor kell, a Linux simán lekezeli ezt. Kisebb lesz a gyorsítótár, és felszabadul a memória. Észre sem veszed, hiszen mindez a memóriában fut, és az nagyon gyors. Azaz a lemezes gyorsítótár csak azt a RAM-ot veszi kölcsön, amelyre az alkalmazások jelenleg nem igényelnek. Nem fogja használni a swap-ot, csak ezért! Ha az alkalmazások több memóriát akarnak, akkor egyszerűen visszaveszik a lemez gyorsítótárából.

A gyorsítótárazást tesztelte itt egy nálam jobban hozzáértő, és a következtetése megszívlelendő! Angol, szakmai szöveg, de érthető.

Van ezzel a lemezgyorsításos dologgal teendőd?

Nincs. Nem tilthatod le a lemezek gyorsítótárát. Az egyetlen ok, amiért valaki valaha is le akarja tiltani a lemezes gyorsítótárat, az az, hogy szerinte elveszi a memóriát az alkalmazásaitól. Ami nem igaz! A lemezes gyorsítótár gyorsítja az alkalmazások gyorsabb és gördülékenyebb futtatását, de SOHA SOHA nem veszi el tőlük a memóriát! Ezért semmilyen ok nincs a letiltására!

Akkor most foglalt, szabad vagy micsoda a memóriám?

Megnézted, és a „szabad” memória kevés, azaz sokat használ a Linux!

A legtöbb esetben ez okozhat problémát – nekünk, de nem a Linuxnak. Mi kétfelé osztjuk – hibásan, de érthető okból – a memória foglaltságot: van, amit használ, és van ami szabad. A Linux másképp gondolkodik.

Nála háromféle memória használtság van. Az első ami ténylegesen használ, foglalt, ez az a rész amit a programok használnak. Ez dinamikusan változik, és mi is foglalatnak minősítenénk.

Van olyan rész, ami szabad, ide terjeszkedhet a memória fogyasztás. Üres tér, amibe lehet majd a programoknak helyet foglalni. Ez az, amit mi üres, szabad, felhasználhatónak látunk. Ami sokkal kevesebb, mint amit a Linux szabadon felhasználhat, mert van egy lemezgyorsító tárazott rész is.

A harmadik része a memóriának ez a gyorstárazott rész. Ezt mi foglaltnak látjuk, hiszen ott tesz valamit a Linux, lemezeinket gyorsítja. De a Linux fogalmai szerint ez foglalt, de felhasználható. Azaz ha kell visszadobja az itteni műveleteket a fizikai lemezekre és máris szabad a hely. Ennek ellenére amíg ez meg nem történik ez „foglalt” és nem üres. Mivel a szabad hely ezzel a dinamikusan felszabadítható résszel kisebb lesz, pánikot okoz a kezdőknél: elfogy a memória, és akkor összeomlik minden…

Mikor van gond a memória hiánnyal?

Ha a programok által használt memória elfogy. Ez ellen egy megoldás van. Tegyél bele többet. Igen, ez pénzbe kerül, és oda kell figyelni, mert hardveresen sem mindegy, hogy milyen az a memória. Nem olcsó, soha nem volt az a memória, főleg a gyors és alacsony időzítésű minőségi memória. Így érdemes a kellő, elégségeset, de nem sokkal többet belerakni a gépbe. Már hallom a megszokott szöveget: és akinek nem telik rá? Annak is van megoldás, amit mindenki használhat: swap használata. Ennek ellenére a magánvéleményem, hogy RGB világítás, és „gamer” egér, szuper egérpad és üvegfalú ház helyett – főleg új gép összeállításánál – érdemesebb a memóriára költeni. Hosszabb távon megtérül.

Swap, a memória helyettes

Swap, azaz csereterület a lemezen. Kétféle van: swap partíció, és swap fájl. Értelemszerűen a swap partíció az egy kötöttebb méretű, a swap fájl méretet meg tudod egyszerűen változtatni. Erről, a swap fájlról volt cikk, így nem térek ki rá.

Gyakorlatilag egy olyan terület a swap, ahova kiterjeszti a memória területét a Linux. Ami nagyon jó, mert gyakorlatilag ingyen van, csak a lemezből foglal el egy adott, kötött helyett. De nem jó, mert sokkal lassabb. Én videóvágásnál tapasztaltam, hogy amikor a swaphoz nyúlt a rendszer, akkor volt egy zökkenés, lassulás a vágásban. Így, bár mindenképp jó dolog a swap, nem fogja helyettesíteni a memóriát. Főleg egy régi HDD-n.

Mikor kezdi használni a swapot?

Amikor kell. Itt sincs túlzott teendőnk, mert a rendszer ezt is kezeli. Ha állítani szeretnéd, akkor a /etc/sysctl.d/99-sysctl.conf fájlban elhelyezed a vm.swappiness=10 bejegyzést. Ezzel megmondod a rendszernek, hogy akkor kezdjen a swap fájl használatába, ha 10% alá esik a szabad memória mérete.

Hogyan nézhetem meg a memória állapotát?

A free parancs való erre. Bár sok egyéb, grafikus és terminálos program is jó, de ez az alap, amit ismerni kell.

laci:~/ $ free [8:14:34]

      total used free shared buff/cache available

Mem:  15986 2906 314  99     12766      12653

Swap: 4095 219 3876

Total: 20082 3126 4190

Valami ilyent látsz majd, az értékek eltérhnek. Ahogy látni nálam van swap, fájlban. Bár jellemzően soha nem futok ki a memóriából, de legyen swapom. Ha mégis sok memóriát kell használni, akkor legyen, mert ha nincs, gondok lehetnek. Bár tapasztalatom szerint nem fog összeomlani a rendszer, de igencsak lelassulhat.

Atya ég! 16giga memóriát vettem, drága pénzért és a vacak Linuxon csak 314mega a szabad! Megyek is vissza Windowsra!

De mi már tudjuk a buff/cache 12766megája bár most használt, de ha kell és az programok kívánják ez azonnal felszabadul.

Mikor kezdjek el figyelni a memóriára?

Ha free közel nulla, mert így a maximális lemezgyorsítást végezheti el, de ha kell, akkor az felszabadítható. Ez aggodalomra nem ad okot.

Az used, azaz a programok által használt memória megközelíti a totál értéket. Ami nem jelent problémát, de ha sokszor felmegy 70% fölé, akkor már érdemes a memória bővítésen gondolkodni. A programok egyre több memóriát igényelnek, eljön az idő, amikor a meglévő, még éppen elégséges már kevés lesz.

Ha a swap used nem változik, egy minimális értéken áll, az természetes. A használata bár látszólag indokolatlan, de a Linux egy nagyon-nagyon kicsit legtöbbször lefoglal magának, technikai dolog.

Amikor probléma van a memóriával!

Ilyenkor már figyelj nagyon, és a határokat feszegeted.

Az available kezd nulla lenni, azaz a lemezgyorsítót is kisöpörte már a Linux, és így sincs tartalék szabad hely. Ha már ez 10% vagy alatta van, akkor a fenti beállítás mellett a swapot kezdi használni. Nézd meg, hogy van-e elegendő swapod! Ha kell készíts nagyobb swap fájlt, mert ha az elfogy, akkor problémás lesz a rendszer használata.

Ideiglenes megoldásnak a swap növelés, és a programok leállítása, újraindítása is megoldás, de a végleges a bővítés.

Ha swapot használ a rendszered. Azaz kifutottál a fizikai memóriából. Erős jel, ha ez rendszeres. Bár pont azért van a swap, hogy a fizikai memóriát segítse, kiegészítse, de hosszan tartó, folyamatos swap használat jele a kevés, elégtelen mennyiségű memóriának!

Ideiglenes megoldásnak nagyon jó a tudatos memória használat. Keress olyan alternatív programot, ami kisebb fogyasztású. Ne nyitogass meg sok programot egyszerre, ha egyikkel végeztél, akkor zárd be. Figyeld pld. a htop programmal az erőteljes memória fogyasztó programjaidat és ha lehet keress mást. Ezek ismert megoldások.

Összefoglalva: No para, ha a free memóriád kevés, az available a fontos.

Related Posts