"Vyuziti" pameti

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Úterý Srpen 12 21:51:47 CEST 2003


On 12 Aug 2003, Petr Stehlik wrote:

> Jeste jeden konkretnejsi priklad: mival jsem GNOME1 a pouzival jsem
> 'vi'. Ted mam GNOME2 a pouzivam JBuilder 8 (to je potvora jedouci nad
> JDK). Potreba pameti je vyssi. O kolik? To bych treba rad videl v tom
> apletu...

Dovolim si parafrazovat klasika:
"A co vy si, Stehlik, predstavujete pod takovou potrebou pamete?"

Muzete si spocitat celkovou spotrebu virtualni pameti resp. celkovou
spotrebu anonymnich stranek, ale to nic konkretniho nerika o tom, jak se
urcity program bude v urcite situaci chovat pri urcitem mnozstvi
pouzitelne fyzicke pameti.

Muzete si spocitat mnozstvi pameti spotrebovane na rezijni naklady jadrem
(ktera take do jiste miry roste s objemem alokovane vm), ale to budou
vetsinou nepodstatne polozky.

To, co Vas asi zajima, je nejspis velikost tzv. pracovni mnoziny (working
set) procesu, tj. mnoziny stranek resp. obecne bloku na disku (pristupy
k filesystemu je treba take brat do uvahy!), se kterymi proces pracuje
v urcitem casovem useku. Coz je samozrejme pojem vagni, protoze zavisi na
tom, co program zrovna dela a jak dlouhy usek si k mereni vybereme. Navic
se to zjistuje dost spatne, protoze bychom museli udrzovat informace o
tom, jak je stranka pouzivana, i pro stranky, co nejsou ve fyzicke pameti.
Krome toho bychom spravne meli tuto informaci udrzovat zvlast pro kazdy
proces.

Z praktickeho hlediska lze take uvazovat o hodnote vyjadrujici nejakou
hranici, od ktere uz zvysovani poctu pouzitelnych strankovych ramcu
nezpusobuje nezanedbatelne zmenseni poctu vypadku stranek (jinak receno se
pridavani dalsi RAM stane neekonomicke), protoze to bere do uvahy i
strankovaci algoritmy jadra, ktere z principu nemohou byt uplne optimalni,
ale to je stejne vagni pojem jako velikost pracovni mnoziny a zjistuje se
to jeste obtizneji bez toho, abychom opakovane simulovali chovani programu
v ruznych situacich...coz pro bezny provoz asi neni uplne dobry pristup.
I kdyz *mozna* by se ta hodnota dala pro obvyklym zpusobem se chovajici
programy nejak extrapolovat ze znalosti udaju o strankach ve fyzicke
pameti.

Proste je to komplikovane. (Ostatne oba mne zname OS, ktere se tvarily, ze
pouzivaji pri strankovani velikost pracovni mnoziny, tj. VMS a MS Windows
NT (aspon ta puvodni verze popsana v Inside NT...ktera ostatne byla
v mnoha smerech napodobenina VMS), se nesnazily tuto velikost opravdu
nejak spocitat, ale proste v zadanych mezich zkousely metodou pokus-omyl
najit ten spravny limit pro RSS kazdeho procesu.)


--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