Odpověď na názor

Odpovídáte na názor ke článku Jak zakázat explicitní fsync (v Ubuntu).

  • 25. 6. 2012 20:52

    Ondřej Novák (neregistrovaný)

    [38] Největší problém je v tom, že kdejaká databáze se dnes nachází v jakékoliv aplikaci. I ten naprosto hloupý firefox používá databáze k ukládání koláčků a preferencí. Pokud je fsync v každé takové databázi, tak není divu, že výkon takového systému jde do "kytek". Podle mě fsync (a podobní) by měly podléhat minimálně nějakým limitům, fsync by měl právo udělat proces běžící jako root, případně pod účtem, který má tuto funkci povolenou. V ostatních případech by měl fsync fungovat jen jako hint pro operační systém, třeba pro seřazení zápisů, což by zajišťovalo konzistenci dat (umožnilo by to tvořit žurnály pro data), ale nezajišťoval by, že data zapsaná sekundu před výpadkem by byla zaručeně zapsaná.

    Z druhého odstavce mám pocit, že spoustu dnešních hacků v aplikacích řeší chyby v extX filesystémech. A výsledkem je pak to, že v jiných filesystémech to nefunguje dobře.

    Největší problém jsou zde priority, jednak se ukazuje, že zápisy zejména na ssd disky opravdu jsou pomalejší a budou pomalejší a linux tohle neumí řešit. Dalé chybí režim "zapiš data, jakmile to bude možné". V tuto chvíli mohu sice nastavit jak často se spouští pdflush a jak rychle zastarávají data v cache, ale efektem je jen to, že se zápis pozdrží, ale pak se zapíše, bez ohledu na to, co OS zrovna dělá. Běda jestli třeba zrovna provádí čtení souboru s filmem. Jinak totiž nedokážu pochopit, jak je možní, že drobný zápis na BTRFS na médium s přenosovou rychlostí 10MB/s přeruší na 10 sekund přehrávání filmů, který má přenosovou rychlost 500kB/s. Kdyby existovali priority, muselo by flushování cache probíhat per-partes s respektem na čtení, které má mít přednost a nemělo by docházet k vyhladovění čtení jen proto, že pdflush zrovna dosáhl nastaveného limitu expirace.

    Fsync v režimu "zapiš data, jakmile to je možné" by tedy byl méně prioritní zápis prováděný okamžitě, pakliže není nic ke čtení. I v tomto případě je možné zapisující proces pozdržet, dokud se zápis neuskuteční. Nicméně nesmí tento proces shodit výkon celého OS, a o tom to celé je. Dá se na tom postavit solidní DoS útok. Doufám, že tuhle obavu se mnou sdílíte.

    Ano, BTRFS je ve vývoji a vypadá to, že ještě nějaké století bude. Mám na výběr. Buď ho nepoužívat, používat a trpět, nebo to nějak obejít. Tohle je jedna možnost. Schválně zkusím to médium provozovat na ext4, uvidíme, jak tam budou rychlé zápisy a jak budou zdržovat celý OS.