Linus Torvalds cáfolta a teljesítményteszt során felmerült feladatütemező problémákat

Játékfejlesztő Malte Skarupke közzétett a blokkolások teljesítményének összehasonlítása alapján Mutex és Spinlock különböző feladatütemezők használata mellett. A tesztek abnormálisan nagy késleltetéseket mutattak ki Spinlock esetén, a Linux alapértelmezett feladatütemezőjével. A teszt szerzője arra az következtetésre jutott, hogy a Linux feladatütemező problémákkal küzd, amelyek kedvezőtlenül befolyásolják a Google Stadia szolgáltatásához készült játékok teljesítményét, ahol a játékok a GPU-n, felhőalapú környezetben futnak, és a kliens számára csak a képernyőtartalom streamelése történik, legfeljebb 60 képkocka másodpercenként. Ilyen körülmények között fontos a képkockák időben történő megjelenítése, és az egy millisekundánál hosszabb késleltetések észlelhetők.

A tesztek megvitatása csatlakozott Linus Torvalds, aki szemétnek nevezte őket („pure garbage”), és annak példájaként, hogy hogyan lehet teljesen megértés nélkül olyan eredményeket elérni, amelyek nem tükrözik a valóságot. A Spinlock egy alacsony szintű primitív, amelyet a felhasználói térben nagy óvatossággal kell használni, és teljes mértékben ismerni a részleteket, különben olyan eredményeket lehet elérni, mint amiket a teszt szerzője bemutatott. A játékfejlesztőknek Linus azt tanácsolta, hogy ne alkalmazzanak spinlock-ot, és ne próbáljanak meg saját blokkolási rendszereket építeni rá, hanem használjanak meglévő, bevált mechanizmusokat, amelyek tájékoztatják a rendszert a blokkolás feloldására való várakozásról, hogy elkerüljék a feladatütemező hatását.

A Spinlock-alapú bővítmények csak akkor használhatók, ha teljesen biztosak vagyunk abban, hogy az ütemező nem szakítja meg a végrehajtásukat. A tesztekben alkalmazott spinlock-alapú blokkolások kézi kerülgetésen keresztül valósulnak meg, amely a felhasználói térben működik. Az ütemező bármikor átveheti az irányítást a környezet az adott kerete alatt, és áttérhet egy másik feladat végrehajtására. Mivel a teljesítménymérés abszolút időértékek alapján történik, a tesztek során megállapított késleltetések nemcsak a blokkolás kezelőjében lévő késleltetéseket fogják fel, hanem a más kontextusban végrehajtott kódot is, azaz nemcsak azt mérik, amit a teszt szerzője próbált mérni, hanem a rendszerben zajló egyéb számítások „zajt” is.

A teszt szerzője attempted Línusnak ellentmondva rámutatott arra, hogy a spinlock alapú saját blokkoló rendszerek alkalmazása a gyakorlatban gyakran használatos játékokban, mivel a Linuxnál egyszerűbb ütemezők alkalmazásakor a tesztek magasabb teljesítményt mutatnak. Línus ellentmondott, hogy a Linux ütemező univerzális, évtizedek óta csiszolják, és nemcsak az asztali gépek és játékok, hanem más terhelések, például a szerverrendszerek számára is optimalizálva van, ezért sok szempontot figyelembe vesz a feladatok végrehajtásának ütemezésekor.

Olyan specifikus optimalizálások hozzáadása, amelyek csökkenthetik a Google Stadia játékainak késleltetését, növelhetik a reakcióképességet az adott esetben, de valószínűleg a teljes ütemező hatékonyságának csökkenéséhez vezetnek. Például a Windows ütemezője a szóban forgó tesztekben jobban teljesít, mivel jelentősen egyszerűbb, mint a Linux ütemezője, és főként asztali feladatra optimalizálták.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster