A leak definicioja, hogy nem hasznalod tobbet. Ergo nem fog viszajonni.
Nem, a leak definíciója az, hogy funkcionálisan felszabadítható memóriaterület foglalt marad. Arról, hogy időnként ráolvas-e a program vagy sem, arról a leak semmit nem mond.
Mondok egyszerű példát, legyen az a feladat, hogy a program feljegyzi és logolja egy URL válaszidejét percenként. Ha a válaszidőt valamiért egy láncolt listába teszi és megőrzi végtelenségig, akkor az egy leak, de mivel mindig hozzá kell fűznie egy újabb elemet, mindig be kell töltenie a teljes listát. Ha ezt rendszeresen kiteszed swap-re, akkor percenként latency vesztésed lesz, ha nem teszed ki swap-re, akkor meg más aktív dolog fog kikerülni és felváltva latency problémáid lesznek.
Ez a leggyakoribb leak és végtelen sok ilyen leak van, ami mindig visszajön és egyre több idő visszahozni. A legkevésbé gyakori leak az, hogy nem kell többé a lefoglalt memória.
Van annyi memoriaja a gepnek, hogy a hasznalt memoria ne lapozodjon ki. Es van kontrol, swapiness -nek hivjak, tok jol mukodik.
Nincs kontrollod. Azt hiszed, hogy van kontrollod, de nincs.
Ráadásul a swappiness globális és a per process cgroups beállításnak sincs halvány fogalma arról, hogy az adott process hogy működik belül. A swappiness nagyjából annyit tesz, hogy mekkora arányú a file backed page és az anonymous page, vagyis leegyszerűsítve azt, hogy a read/write buffer legyen inkább a fizikai memória vagy a processzek akár nem használt adatai legyenek ott. A swappiness-t akkor érdemes hangolni, ha például nem olvasol sok adatot fájlból, nem időkritikus a fájlok olvasása, és adott esetben percek vagy órák óta ott ülnek buffer-ben adatok, amelyeket nem használsz semmire, viszont kinn van swap-en a program saját adata és/vagy, ha a programnak van saját file cache-e. De ezek teljesen más esetek, mint a leak, arra a swappiness nincs érdemleges hatással.
Szerintem rosszul használod a swappiness-t.