neviditelny zrout pameti?
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Pátek Září 17 11:19:22 CEST 2004
On Fri, 17 Sep 2004, Jaroslav Lukesh wrote:
> tedy vysledek bude soucet (C1*B1 ... C999*B999) nebo soucet (C1*A1 ...
> C999*A999)?
\sum_n (E_n (pocet alokovanych slabu (*)) * F_n (pocet stranek na slab) *
4 kiB (velikost stranky))
(*) Tady maji asi v popisu chybu. Je to pocet slabu, ne stranek.
> No jen tak pro zajimavost, zrovna tedka mi soucet RSS z ps aux vychazi
> mnohem vetsi, nez co vyjde z free a to jsem je spustil vsecky najednou
> ze skriptu.
>
> soucet pouziteho z free: 710620
> dtto z ps aux: 787172
>
> tedy mi vychazi, ze mam neviditelnych 76MB pameti navic.
To se snadno muze stat, pokud procesy nejake stranky v RAM sdileji.
Kazdy proces ji ma zapocitanou ve svem RSS, a tudiz to vypada, ze
suma RSS je vetsi, nez skutecne zabrana pamet. Zejmena k tomu dochazi
u multithreadovych programu, kde nekolik procesu sdili cely pametovy
prostor (tedy je pravda, ze s NPTL je to trochu jinak a thready lze od
samostatnych procesu pomerne dobre odlisit).
Chtelo by to take pocitat "weighted RSS", kde by sdilene stranky
zapocitavaly s vahou 1/s, kde s je pocet procesu, co je sdileji, cili
celkovy soucet pres vsechny procesy by byl spravne.
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux