fork: Prostredek je docasne nepristupny

Míla Kuchta mila.kuchta na atlas.cz
Sobota Prosinec 16 18:17:03 CET 2000


Míla Kuchta <mila.kuchta na atlas.cz> wrote:
> 
> Milan Kopacka <mkop5230 na ss1000.ms.mff.cuni.cz> wrote:
>> 
>> Mikulas Patocka na vsech svych prednaskach o Linuxovem memory managementu,
>> kterych jsem se ucastnil :) upozornoval na to, ze forknuti vyzaduje v
>> kernelu uceleny 2kB kus pameti na nejakou svou strukturu (proc (?)). Pokud
>> je pamet dostatecne fragmentovana (provozne - dele bezici stroj s vicemene
>> zaplnenou pameti), muze se stat, ze proste takovy kus pameti neni (pameti
>> muze byt klidne dost, ale jen v 1kB kouscich) a pak failuji fork()y.
>> 
>> Zvysovani limitu ve /proc/sys/vm/freepages je nepochybne spravna cesta,
>> ale vic Vam neporadim. :( (Snad jen.. opravit kernel.) :(
> 
> To je jiste pravda, ale pokud neni chyba v jadre, tak to by melo zajistit,
> aby byly uvolneny nepotrebne stranky (a takove na stroji s 256MiB
> a jednim procesorem urcite budou - take od toho je tu free_pages_high a
> free_pages_low) a jejich spojeni do vetsich souvislych bloku (defragmentace).
     ^^^^^^^^
freepages.(min|low|high)

P.S.: Pokud se po tom opravdu hodlate pidit, zkuste si pridat par printk
do kernel/fork.c na konci funkce do_fork. Treba vypis nr_free_pages a
podrobnejsi informace o sehlani.


Další informace o konferenci Linux