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