Kezdőoldal » Számítástechnika » Egyéb kérdések » Hogy lehet a linuxot rávenni,...

Hogy lehet a linuxot rávenni, hogy ha sok szabad memóriám van, ugyan hozza már vissza a kiswappolt dolgokat RAM-ba?

Figyelt kérdés

Ha csinálnom kell valami memóriaigényes dolgot, a rendszer érthető módon kiswappol ezt-azt, böngésző egyes tabjait, más programokat. Aztán befejeződik a memóriaigényes feladat, és felszabadul 5 giga RAM. De ami kiment a swapba, ott is marad. Magától soha nem hozná vissza őket a memóriába, csak ha újra használni kezdem a kiswappolt programokat, tabokat. A hócipőm tele van, hogy egy halom szabad memóriával 10-20 másodperceket kell várnom egy ablakváltásra, mert nem volt annyi esze a rendszernek, hogy a háttérben fokozatosan visszatöltse a kiswappolt adatokat, hátha kedvem támad még használni őket életemben...


Van erre valami megoldás? Egy olyan beállítás kéne nekem, ami a "swappiness" ellentéte, azaz a rendszernek nem a memóriából való kifutásnál, hanem a memória felszabadulásánál való viselkedését kontrollálja.



2018. okt. 19. 19:03
1 2
 1/11 anonim ***** válasza:
76%
A HDD a baj szerintem. Arra jó stratégiát implementálni marhanehéz, hogy mit milyen sorrendben szedegessen vissza. Elképzelhető, hogy van rá eszköz, de szerintem ezt mindenki SSD-vel oldaná meg, és persze lehetőség szerint több rammal, ssd-n kucorgó swap partícióval, nullás vm_swapiness értékkel.
2018. okt. 19. 19:55
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
71%
Annál is inkább (folytatom az #1-es válaszomat), mert amikor bezárod a memóriazabáló alkalmazásodat, akkor mi történne jó esetben? Tegyük fel, hogy teljesen használható statisztikát tárol a memória menedzsment arról, hogy a kiswappelt dolgok mennyire fontosak a megszokott használati módod mellett, vagy tegyük fel, hogy nem is kell, mind FF tab, mind kellene. Mennyi idő lenne akkor visszakalapálni vinyóról az egészet? Beleférne húsz másodpercbe, rendben, csak HDD sebességgel történne, jó esetben nagyrészt szekvenciális olvasással. Egy olcsó, nem gyors SSD meg pont olvasáskor a legrosszabb (elég sok random olvasás, még ha nem is kis szeletekben) esetben is igen bőven két másodpercen belül visszatolna mindent. Akkor is, ha nem foglalkoztat senki jósokat a visszapakolásra, és akkor is, ha nincs megoldva, csak az első tabra kell várnod egy másodperc + egy "mi a k.." erejéig. Igen, használódik az SSD, de ha mondjuk egy filléres 32GB van csak ilyenekre használva, akkor gondolom biztonságos az egész egy olyan 50 évig...
2018. okt. 19. 20:02
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:

Köszi. Erre én is gondoltam, hogy kéne egy SSD, arra tenni a swapot. Sajnos ez a jelen laptopomnál csak egy 2-in-1 vinyóval menne amit most nem engedhetek meg magamnak. De legközelebb így tervezek majd.


Azért ha valaki tud programot, ami a szabad kapacitást látva alacsony prioritáson tud ilyet csinálni a háttérben, szóljon. Igazából a sebessége se fontos, a legtöbb dologhoz nem azonnal érek hozzá, hanem percek vagy akár órák után, de még mindig swapban van.

2018. okt. 19. 21:20
 4/11 anonim ***** válasza:

Ahogy már írták, a vm.swapiness kernelparamétert kell beállítani (rootként terminálban).

A jelenlegi értéket a


sysctl vm.swappiness


paranccsal tudod lekérdezni (a legtöbb disztrónál általában 60 az alapértelmezett).


Beállítani így lehet:


sysctl vm.swappiness=5


De ezzel még nem vagyunk kész, mert ha újraindítod a rendszert, akkor az érték elveszik. Hogy ne vesszen el, be kell írnunk egy konfigurációs fájlba. Alapértelmezetten az /etc/sysctl.conf fájlt használja a rendszer, de nem ajánlott ezt szerkeszteni, mert egy későbbi frissítés felülírhatja. Ehelyett az /etc/sysctl./d mappában kell létrehozni egy fájlt, pl. 99-sysctl.conf néven (ez a szám-betű formátum és a szám nagysága is fontos, ehhez kell tartani magunkat!). Egyes rendszereken alapból létezik egy ilyen, vagy ehhez hasonló nevű fájl, és sok esetben ugyanaz a tartalma, mint az /etc/sysctl.conf fájlé. Ha létezik, akkor szerkeszd azt, ha nem létezik, akkor hozd létre.

A fájlba elég ennyit írni: vm.swappiness = 5


A fenti 5-ös érték csak példa, bármi lehet 1 és 100 között az alábbiak szerint:

- 0: újabb kernelverziók esetén (3.5 fölött) teljesen letiltja a swap-elést

- 1: a lehető legkevesebbet swapol, csak akkor, ha már muszáj

- 10: jó teljesítményt nyújthat, ha sok memóriád van

- 60: alapértelmezett érték

- 100: agresszíven swap-el

2018. okt. 20. 20:52
Hasznos számodra ez a válasz?
 5/11 A kérdező kommentje:

A vm.swappiness más tészta. Nekem nem a RAM → swap irány okoz fejfájást, hanem a swap → RAM. A swappiness csak az elsőre van hatással.

Közben találtam egy csúnya, manuális félmegoldást: swapoff -a; swapon -a. Ugyan lassú, és beletelik 1-2 percbe míg visszatölti a swap tartalmát memóriába, de legalább letudja egyben, miközben nyújtózom egyet vagy kimegyek WC-re.

2018. okt. 22. 11:21
 6/11 anonim ***** válasza:
100%

>"swapoff -a"

Ez működhet, de azért figyelj, mert ha nem fér be minden a RAM-ba, abból lehet gond.

Ugyanazt javaslom, mint fentebb, konkrétan swappiness = 1

>"egy halom szabad memóriával 10-20 másodperceket kell várnom egy ablakváltásra"

Ez nem ugyanaz, mint a swapoff-swapon?

>"nem volt annyi esze a rendszernek, hogy a háttérben fokozatosan visszatöltse a kiswappolt adatokat"

De ha ezt tenné, akkor az lenne a baj, hogy belassul a rendszer, kéretlenül zakatol a háttértár, önállóskodik a Linux, stb.

2018. okt. 23. 00:43
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:
100%
Minden rendszerre igaz, beleértve a Linuxot is, hogy mindenkinek sohasem fog megfelelni. Szerintem kell még több RAM és zéró swapolás.
2018. okt. 23. 06:21
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:

#6 Gondolom technikailag ugyanazt csinálja a swapoff, mintha az összes process-t egyesével élesztgetném, de a fő különbség, hogy ezzel egy menetben letudom az egészet, nem szórványosan szaggat a gépem 10 másodpercekre. Benyomom, felállok a géptől, pár perc múlva visszaülök, és ismét minden gyors.

Az jogos, hogy kéretlenül nem jó ötlet az automatikus visszatöltés, de hogy egy vacak beállítás sincs rá? Biztos lehetne értelmesen is csinálni, körülményeket figyelembe véve, a jelenlegi mindent vagy semmit helyett.

2018. okt. 23. 16:16
 9/11 anonim ***** válasza:

"a jelenlegi mindent vagy semmit helyett."

Ezt nem tudom, honnan vetted. Mondjuk inkább, hogy "amire épp szükség van". Amúgy hasznos lenne olvasgatni lapozási stratégiák témakörben, sok a hasonlósága a swap-pel. pl:

[link]

( [link] )

2018. okt. 23. 17:08
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:
100%

Azért próbáld ki, hogy a vm.swappiness-t beállítod pl. 10-re, megnézed mit produkál, és ha jó, akkor 1-re, vagy akár egyből 1-re. Lehet, hogy a swappolás kisebb-nagyobb mértékben csökkenni fog.


Az a baj, hogy amit te szeretnél, az szembemegy a logikával. Most ugye az van, hogy kiswappeljük azokat a memórialapokat, amiket ritkán használunk, és ha lesz szabad RAM és szükség van a lapokra, akkor visszatöltjük őket. Te most azt szeretnéd, hogy a rendszer kéretlenül töltsön vissza valamit (mit is?), amint felszabadul némi RAM. Ehhez a rendszernek tudnia kellene, hogy mely lapokat lenne érdemes visszatölteni, és hogy mennyi RAM felszabadulás esetén töltögessen vissza. De a rendszer honnan tudná, hogy neked épp melyik kiswappelt memóriarész fog kelleni? És ha visszatölt valamit, de te elindítasz egy másik programot, akkor a visszatöltött részt megint csak ki kell írnia, hogy legyen hely az újonnan indított programnak.

2018. okt. 23. 19:25
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!