Vlákno názorů k článku
Linux Mint 21 nebude mít systemd-oomd od Ondřej Novák - A přitom by stačilo, aby Linux přestal používat...

  • Článek je starý, nové názory již nelze přidávat.
  • 7. 7. 2022 8:58

    Ondřej Novák

    A přitom by stačilo, aby Linux přestal používat overcommit a aplikace přestaly používat běžnou praxi "tady si zaalokuji 10GB paměti, co kdyby...".

    Ve Windows existuje rezervace adresového prostoru, ale pak musím udělat explicitní alokaci v něm. V linuxu stačí do stránky zapsat. Místo vracení výjimku na malloc tak problém padne na process, který je v tom nevině, protože měl tu smůlu, že zrovna zapisoval do prázdné stránky.

  • 7. 7. 2022 14:16

    jdsulin

    Kdyz te to tak trapi, neni problem oom a overcommit zakazat. Pokud te trapi konkretni aplikace neni problem ji omezit.
    OOM je nejake reseni na situaci, ktera neni obecne resitelna. Ono uz kdyz se v dnesni dobe dostanes i do swapu, tak to ma zasadni vliv na vykon. Overcommit je paradoxne naopak mnohem spravedlivejsi - alokujes pamet a pouzivas ji? Ok, alokujes pamet a nepouzivas ji? Nemas pamet.

  • 7. 7. 2022 18:49

    Ondřej Novák

    No ja nevim, chrome alokuje 32GB. Protože si tím jen rezervuje adresový prostor, o alokaci nejde. Adresový prostor je vlastní pro každý proces.

    Kdyby aplikace ten prostor skutečně alokovala (alloc, ne rezervace), pak by si uživatelé začali stěžovat, že aplikace žere moc paměti a vývojáři by to museli řešit. Takhle na to kašlou, protože overcommit ne?

    Představ si to z programátorského hlediska. Tady mám data, které potřebují uložit do paměti, potřebuju 10GB paměti. Operační systém řekne "OK - tady máš 10GB". Začnu těch 10GB plnit daty - a - v lepším případě dostanu signal, v horším mě zabijou. Co když náhodou bych potřeboval udělat nějaký cleanup (takový ten, co nezařídí operační system). Kdyby se dopředu dozvěděl, že těch 10GB nemám, tak se spoustu věcí zjednoduší.

    (probe zápis je rovnák na ohejbák)