Olyan problémám van, hogy ~20 órai folyamatos uptime után, az Ubuntu 12.10 (desktop) felfalja az összes memóriát és a swap-ot is.
Van 4GB Ram + 1GB swap. Fel se tünt volna a dolog, hacsak filmnézés közben egyszer csak nem kezd el szaggatni a film és hihetetlenül lassú nem lesz a rendszer.
A free szerint 3803MB használt / 3231MB gyorsítótár, 224MB szabad. Mellette van 328MB swap.
Nem most kezdi el csinálni, csak eddig ráfogtam valamire. Volt hogy a NetBeans maradt egész este elindítva, de most csak a Deluge futott, ha kilépek se lesz jobb, szóval nem ő a ludas. A htop se ír semmi hasznosat..
Kérdésem: Hogy lehetne észlelni, hogy mi okozza a problémát? Unity? Kernel? Compiz?
--
Megoldás:
Röviden: vm.swappiness értékét csökkentettem 50-re.
Hosszabban: http://hup.hu/node/118728#comment-1519865
- 4962 megtekintés
Hozzászólások
egyenként lövöldözöl míg fől nem szabadul.
- A hozzászóláshoz be kell jelentkezni
command line: top
de amúgy biztos van valami gui -s megoldás is erre, ahol sorba tudok rakni memóriahasználat szerint appokat.
- A hozzászóláshoz be kell jelentkezni
Kezdd azzal, hogy kikapcsolod a swap-et.
Az elengedhetetlen memóriaigény a fenti alapján 3803 - 3231 + 328 = 900 MB volt. A gyorsítótár nyilván a deluge miatt nőtt meg ennyire. Az inaktív processzek adatait lassanként kiírta swap-ra a rendszer, hogy minél több RAM-ot állíthasson a cache szolgálatába. Amikor elkezdett minden akadozni, akkor vagy valamelyik processz felébredt és be kellett lapozni az adatait, vagy a deluge miatt még több cache is jól jött volna, és a kernel elkezdett kötegesen kidobálni lapokat a swap-re.
Ez alapvetően helyes viselkedés szervercélú felhasználásnál (deluge), azonban te interaktívan dolgoztál (film); számodra fontosabb az alacsony válaszidő, mint a deluge hosszútávú diszkigénye. Kapcsold ki a swap-et, vagy maszatolj a vm.swappiness sysctl-lel. http://www.linuxinsight.com/proc_sys_vm_swappiness.html
Szerk: elszámoltam az elejét, javítva.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, most elkezdtem élőben követni a folyamatot, meglátom hogy melyik érték lesz nekem a megfelelő.
- A hozzászóláshoz be kell jelentkezni
Köszönöm a segítséget, ez megoldotta a dolgot.
vm.swappiness 50 értékkel van ~90MB swap. Bőven belefér, a gép folyamatosan reszponzív marad.
- A hozzászóláshoz be kell jelentkezni
Csak a hajónapló kedvéért. A swap mérete nem számít, az egy babona. Csak az számít, hogy mennyire intenzíven használja a gép, amit pl. a vmstat paranccsal lehet megnézni (si, so oszlopok).
Az egyik gépemen bő 1G swapot használ a rendszer, mégse lehet észrevenni.
- A hozzászóláshoz be kell jelentkezni
Jogos, de a méretéből lehet következtetni hogy mennyi mindent írt ki. Ugye minél nagyobb, annál valószínűbb hogy sikerül olyan lapba belefutnom amit keveset használtnak ítélt.
Azt nem lehet valahogy kicsikarni belőle, hogy melyik programhoz tartozó lapokat írt ki?
- A hozzászóláshoz be kell jelentkezni
http://northernmost.org/blog/find-out-what-is-using-your-swap/
De ez nagyon csalóka, a valós swap (page rate) használat nélkül kb. semmit se jelent. Nekem fura, hogy a swappines 60-ról 50-re állítása ennyit számítson, főként filmnézés közben mit találhat ki a gép, hogy hirtelen annyi szabad memória kell neki, és nem tud cache-t eldobni, mindenképp swapolnia kel.
- A hozzászóláshoz be kell jelentkezni
Nem igazán értem, de a cache az pont hogy nem kéne bezavarjon semmibe (mert elvileg rögtön felhasználható terület, nem lefoglalt, csak gyorsítótár). E miatt meg főleg nem kéne laggolnia a rendszernek.
- A hozzászóláshoz be kell jelentkezni
Gondolom a Deluge folyamatosan olvasott a lemezről, közben pedig más program nem igazán volt aktív, így - jogosan - kiswappolt nem használt dolgokat hogy legyen hely a cache-nek.
Annyi volt a bökkentő, hogy azt is kiswappolta amire menetközben szükségem van. Kicsit túlreagálta a dolgot.
- A hozzászóláshoz be kell jelentkezni
Nem biztos, hogy segít, de esetleg IO-ütemező váltás javíthat a dolgokon: sok vinyó-műveletkor nekem is akadoztak a dolgok, és a deadline ütemező bejött.
A /sys/block/ESZKÖZ/queue/scheduler fájl tartalmazza a lehetőségeket, és egyszerű echo IO_ÜTEMEZŐ > /sys/block/ESZKÖZ/queue/scheduler paranccsal átírható. Boot-kor a kernelnek adsz egy elevator=deadline paramétert. Bővebben itt.
- A hozzászóláshoz be kell jelentkezni
Végeztem pár tesztet az IO ütemezőkkel majd' 2 éve és az jött ki, hogy ha sok az IO művelet és van elég CPU időm, akkor jobban járok az alapértelmezett ütemezővel.
Majd előásom egy mentésből, ha esetleg érdekel.
- A hozzászóláshoz be kell jelentkezni
Hát, ha nincs jobb dolgod, akkor érdekelne.
Nekem speciel mindennapi használatra a deadline sokkal jobban megfelel, mint a cfq (azt hiszem, ez az alapértelmezett, de talán mintha kernelfordításkor lehetne ezt állítani). Amivel gondom volt: pendrive-ra másoláskor (film, tehát giga nagyságrend) nem volt a gép "reszponzív" (vagy hogyis kell úgy mondani, hogy okosnak tűnjek), azaz pl. az egér is eléggé szaggatott. Amióta deadline lett, ilyen gondjaim nincsenek (és nem azért, mert már nem használok egeret :) ).
- A hozzászóláshoz be kell jelentkezni
+1
Én is a pendrive miatt álltam át.
- A hozzászóláshoz be kell jelentkezni
eredetileg mennyi volt?
--
Dropbox:
https://www.getdropbox.com/referrals/NTI3NzY1ODQ5
Ubuntu One:
https://one.ubuntu.com/referrals/referee/1453424/
- A hozzászóláshoz be kell jelentkezni
Az alapértelmezett: 60
- A hozzászóláshoz be kell jelentkezni