Linus Torvalds vyvrátil problémy s plánovačem úloh, které se objevily v testu výkonu.

Vývojář her Malte Skarupke vydal srovnání výkonnosti zámků založených na Mutex a Spinlock při používání různých plánovačů úloh. Testy ukázaly abnormálně velké zpoždění při používání Spinlock s plánovačem úloh používaným ve výchozím nastavení v Linuxu. Autor testů dospěl k závěru, že plánovač úloh v Linuxu má problémy, které negativně ovlivňují výkon her vyvíjených pro službu Google Stadia, kde se hry vykonávají na GPU v cloudovém prostředí a klientovi se pouze streamuje obsah obrazovky až při 60 snímcích za sekundu. V těchto podmínkách je nutné zajistit včasný výstup snímků na obrazovku a zpoždění přesahující milisekundu jsou patrná.

K diskusi o testech se připojil Linus Torvalds, který je nazval odpadem („pure garbage“) a příkladem toho, jak mohou být získány výkonnostní ukazatele, které neodrážejí skutečnost, aniž by se téma důkladně prozkoumalo. Spinlock je nízkoúrovňový primitiv, který by měl být používán v uživatelském prostoru s velkou opatrností a s plným porozuměním detailům, jinak lze dosáhnout toho, co demonstroval autor testu. Vývojářům her Linus doporučil, aby se vyhýbali použití spinlocku a nesnažili se vytvářet vlastní blokovací systémy na jeho základě, ale používali existující osvědčené mechanismy, které informují systém o čekání na uvolnění zámku, aby se vyloučil dopad plánovače.

Nadstavby založené na Spinlocku lze používat pouze s plnou jistotou, že plánovač nepřeruší jejich vykonávání. V testech použité zámky založené na spinlocku jsou realizovány prostřednictvím domácí obálky pracující v uživatelském prostoru. Plánovač úloh může kdykoli náhodně převzít kontrolu během vykonávání této obálky a přepnout se na vykonávání jiného úkolu. Protože měření výkonnosti je prováděno na základě absolutních hodnot časovače, určité zpoždění v testech zahrnuje nejen zpoždění ve zpracování zámku, ale také kód, který byl vykonán v jiném kontextu, tj. měří nejen to, co se autor testu snažil změřit, ale také „šum“ z dalších výpočtů v systému.

Autor testu se snažil oponovat Linusu s tím, že používání vlastních blokovacích systémů založených na spinlocku je v praxi často používáno ve hrách, protože při použití jednodušších plánovačů než v Linuxu ukazují testy vyšší výkon. Linus oponoval, že plánovač Linuxu je univerzální, zdokonaloval se po desetiletí a je optimalizován nejen pro desktop a hry, ale i pro jiné typy zátěže, jako jsou serverové systémy, proto zohledňuje mnoho nuancí při plánování vykonávání úloh.

Přidání specifických optimalizací, které sníží latenci ve hrách Google Stadia, může zvýšit citlivost v konkrétním případě, ale pravděpodobně povede ke snížení efektivity plánovače jako celku. Například plánovač Windows se v diskutovaných testech chová lépe, protože je výrazně jednodušší než plánovač Linuxu a je optimalizován převážně pro úkoly specifické pro desktop.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster