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