Linus Torvalds vyvrátil problémy s plánovačom úloh, ktoré sa objavili v teste výkonu

Hráčsky vývojár Malte Skarupke publikoval porovnanie výkonu zámkov na základe Mutex a Spinlock pri použití rôznych plánovačov úloh. Testy preukázali abnormálne vysoké latencie pri použití Spinlock s predvoleným plánovačom úloh v Linuxe. Autor testov dospel k záveru, že plánovač úloh v Linuxe má problémy, ktoré negatívne ovplyvňujú výkon hier vyvinutých pre službu Google Stadia, kde sa hry vykonávajú na GPU v cloudovom prostredí a klientovi sa prostredníctvom streamovania prenáša obsah obrazovky až do 60 snímok za sekundu. Za týchto podmienok je potrebné zabezpečiť včasné zobrazenie snímok na obrazovke, pričom latencie presahujúce jednu milisekundu sa stávajú viditeľnými.

K diskusii o testoch pripojil Linus Torvalds, ktorý ich označil za odpad („pure garbage“) a príklad toho, ako možno, úplne bez porozumenia téme, získať ukazovatele, ktoré neodrážajú reálnu realitu. Spinlock je nízkoúrovňový primitív, ktorý je potrebné v používateľskom prostredí používať s veľkou opatrnosťou a úplným porozumením detailom, inak možno získať to, čo bolo demonštrované autorom testu. Vývojárom hier Linus odporučil, aby nepoužívali spinlock a nepokúšali sa vytvárať vlastné systémy zamykania na jeho základe, ale aby používali existujúce osvedčené mechanizmy, ktoré informujú systém o čakaní na uvoľnenie zámku, aby sa vylúčilo ovplyvnenie zo strany plánovača.

Nadstavby založené na Spinlocku možno používať iba pri plnej dôvere, že plánovač prerušene nezruší ich vykonávanie. V testoch používané zámky založené na spinlocku sú implementované prostredníctvom vlastnej obálky bežiacej v používateľskom prostredí. Plánovač úloh môže kedykoľvek prevziať kontrolu počas vykonávania tejto obálky a prepínať na vykonávanie inej úlohy. Keďže meranie výkonu sa vykonáva na základe absolútnych hodnôt časovača, určité v testoch namerané latencie zachytávajú nielen latencie v spracovateľoch zámkov, ale aj kód, ktorý bol vykonaný v inom kontexte, t.j. merajú nielen to, čo sa snažil zmerať autor testu, ale aj „šum“ z iných výpočtov v systému.

Autor testu sa pokúsil odpovedal Linus, poukazujúc na to, že použitie vlastných systémov blokovania založených na spinlockoch sa v praxi často používa v hrách, pretože testy preukazujú vyšší výkon pri použití jednoduchších plánovačov ako v Linuxe. odpovedal, že plánovač Linuxu je univerzálny, vylepšoval sa desaťročia a je optimalizovaný nielen pre desktopy a hry, ale aj pre iné typy zaťaženia, ako sú serverové systémy, preto zohľadňuje množstvo nuáns pri plánovaní vykonávania úloh.

Pridanie špecifických optimalizácií, ktoré by znížili oneskorenia v hrách Google Stadia, môže zvýšiť reakčný čas v konkrétnych prípadoch, ale pravdepodobne by viedlo k zníženiu efektivity plánovača celkovo. Napríklad plánovač Windows sa v uvedených testoch správa lepšie, pretože je výrazne jednoduchší ako plánovač Linux a je optimalizovaný predovšetkým pre úlohy špecifické pre desktop.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster