drop caches

Fórumok

Hali!

A memóriacache-t így lehet törölni (2.6.16 óta):

# sync
# echo 3 > /proc/sys/vm/drop_caches

A sync azért kell, mert a dirty cuccokat ez írja ki a lemezre, mert
a "echo 3 > /proc/sys/vm/drop_caches" nem törli csak azokat
a bejegyzéseket, amik tényleg törölhetőek.

A kérdésem:


# free
             total       used       free     shared    buffers     cached
Mem:       2066408    1928980     137428          0        604     675100
-/+ buffers/cache:    1253276     813132
Swap:      3911788          0    3911788

# sync
# echo 3 > /proc/sys/vm/drop_caches

# free
             total       used       free     shared    buffers     cached
Mem:       2066408    1926968     139440          0        324     673804
-/+ buffers/cache:    1252840     813568
Swap:      3911788          0    3911788

Szóval "válámi van" de az a 600 mega nem akar eltűnni...

Mit tudok még mondani sync-en kívül?
Tudok olyat mondani, amivel megnézem, hogy a cache pontosan hogy néz ki?

Esetleg vmi más ötlet?

*szerk: bbcode, hogy olvasható legyen

Hozzászólások

Az nem is fog eltunni, csak ha valami processznek szuksege van arra a memoriateruletre.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Hali!

ez nem teljesen van így...
egy másik gépen:


# free
             total       used       free     shared    buffers     cached
Mem:        514732     508288       6444          0          0     281860
-/+ buffers/cache:     226428     288304
Swap:      2097144      71992    2025152
# sync
# echo 3 > /proc/sys/vm/drop_caches
# free
             total       used       free     shared    buffers     cached
Mem:        514732     309896     204836          0          0      87748
-/+ buffers/cache:     222148     292584
Swap:      2097144      71992    2025152

Itt is maradt valami, de itt lényegesen kisebb lett a cache mérete.
Találtam egy ilyet: http://linux-mm.org/Drop_Caches

Ez alapján valszeg azért nem törlődött teljesen, mert a "echo 3 > /proc/sys/vm/drop_caches" és a "free" között eltelt idő alatt újabb dirty flagek lettek beállítva, ill. a cache tartalmaz nem fájlokhoz kötődő dolgokat is.

Ez alapján még mindig az a kérdésem, hogy ki lehet vhonnan deríteni, hogy mi van a cache-ban?

Persze, ha debugolod a kernelt biztosan.

Kulonben meg nem mindegy? Ha a rendszernek szuksege van ra, a kernel felszabaditja ezeket a helyeket, hidd el. Vagy most kernelt akarsz hekkelni? Vagy nem ertem a problema lenyeget...
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

A kérdés arra irányult, hogy kernel debugolás nélkül meg tudom-e valahonnan.
Van-e olyan exotikus parancs, vagy a /proc alatt valami, ami ezt megmondja nekem?

Tudom, hogy ha szükség van rá, akkor felszabadítja a memóriát a kernel.

A probléma lényege egyszerű: érdekel. Szeretnék beleszólni ebbe a folyamatba, mert csak.

Szerintem nincs ut a cache nezegetesehez, espedig biztonsagi okokbol: ott meg erzekeny adatok is lehetnek. Jobb, ha egy virus legalabb ilyesmihez nem fer hozza.

Azt tudom ajanlani, hogy nezegesd a kernelforrast, esetleg dobj egy mailt a kernel-devel -re, hatha ott reszletesebb valaszt adnak.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

irsz 2 soros c progit, ami lefoglalja az osszes memoriat.