Portál AbcLinuxu, 10. května 2025 04:52

Dotaz: Swapuju i když mám ještě hodně cached memory

21.5.2012 02:19 Jaa(c)
Swapuju i když mám ještě hodně cached memory
Přečteno: 600×
Odpovědět | Admin
Zdravím,

předně - mám openSUSE 12.1. Mám takový probém - testuju jeden program, kde během chvíle alokuju poměrně velký množství paměti (>1GB). A systém má tendenci začít swapovat... Jenže ve chvíli, kdy začne swapovat má pořád ještě poměrně hodně paměti cached - očekával bych, že systém nejdřív uvolní cache, než začne swapovat...

Takhle to vypadá před spuštěním programu:
jaa@jaa-ntb:~> free -m
             total       used       free     shared    buffers     cached
Mem:          2989       2759        230          0        116       1187
-/+ buffers/cache:       1456       1533
Swap:         2047          0       2047
a takle to někdy vypadá potom:
jaa@jaa-ntb:~> free -m
             total       used       free     shared    buffers     cached
Mem:          2989       2865        124          0          1        391
-/+ buffers/cache:       2471        518
Swap:         2047        364       1683
tohle je konkrétně při nastavení swappiness na 60, ale dělá to víceméně stejně, když jí snížim na 10.

Nevíte, kde by moh být problém, resp. proč swapuju i když bych měl mít ještě dost paměti? Díky za nápady...
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.5.2012 09:38 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nastav si swappiness
21.5.2012 09:51 drunkezz | skóre: 34 | blog: kadeco
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory

zjavne mas este co to v krvi....o swappiness pisal.

Skor by som ocakaval ze ten box bude loadovat nejaku appku co si potiahne vela pamate...
D.

21.5.2012 11:08 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podla mna funguje spravne. Zrazil "cached" na 1/3 a nechal jej len cca 12% RAM, co fakt nie je vela. Ak by nemal ziadnu diskovu cache, tak by fungoval dost strasne. Proste usudil, ze tym 391MB si radsej necha v RAM aj za cenu, ze nieco ine odlozi na disk.
If you hold a Unix shell up to your ear, you can you hear the C.
21.5.2012 17:29 Jaa(c)
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory
Díky za odpověď... A nevíš, jestli se dá nějak ovlivnit (nastavit) kolik si v tý chached nechá, resp. kdy už začne swapovat?
21.5.2012 18:02 ewew | skóre: 40 | blog: ewewov_blog
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory

Aby systém nezačal swapovať musíš mať volnú RAM. Pamäť cache sa počíta ako využitá pamäť.

Skús tento príkaz echo 3 > /proc/sys/vm/drop_caches. Na overenie môžeš použiť príkaz free -ml pred a po použití.

Root v linuxe : "Root povedal, linux vykona."
21.5.2012 19:59 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory
Vzdy som si myslel, ze to ovplyvnuje swappiness. To, ze to u teba nezabralo je podla mna tym, ze tvoj pripad je uz mimo rozsah pouzitej swappiness. A vazne si myslis, ze ked ti 2.7GB nestacilo, tak zvysnych 390MB ta spasi?

Cez to zamykanie v RAM si mozes vynutit, ze 3GB obsadis presne tym obsahom, ktory chces, ale skus si domysliet, az nieco bude chciet nacitat par desiatok MB z disku. Kam si to asi da, az to precita z disku?

Mat real-time aplikaciu, ktora zije v konstantnej pamati, tak ju v tej RAM zamknem, ale na bezne pouzitie celkom slusnefunguje aj default nastavenie jadra.
If you hold a Unix shell up to your ear, you can you hear the C.
23.5.2012 13:00 Jaa(c)
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory
Já ani tak nemluvil o běžném používání :) Testuju nějakej algoritmus a když mi to začalo víc swapovat, tak to docela ovlivnilo i ty testy...

Nakonec sem to vyřešil tak, že sem na testování killnul Xka, testoval to přes konzoli a do tý paměti sem na těsno vešel...
rADOn avatar 21.5.2012 18:11 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud jsi si opravdu jistý že víš lépe než kernel co má dělat, alokované stránky můžeš zamknout ve fyzické paměti pomocí volání mlock() a mlockall(). Ale IMO naděláš víc škody než užitku – pokud se ta pamět skutečně používá, vyběhne ze swapu pěkně rychle sama. Pokud ne, tak jen pověsíš kernelu kámen na krk.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
21.5.2012 20:54 Ivan
Rozbalit Rozbalit vše Re: Swapuju i když mám ještě hodně cached memory
Taky se muzes kouknout pro /proc/<pid>/smaps na adresni prostory vsech procesu a kouknout se zda nejsou nejake procesy zamknute, popr. ktere konkretni procesy se dostaly do swapu.

PS: to ze program swapuje jsi poznal podle swap in/out?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.