Do kódu jádra Linux, na jehož základě vzniká verze 6.15, byla přijata řada změn s optimalizacemi, které v některých situacích významně zvyšují výkon síťových operací:
- Optimalizace GRO (Generic Receive Offload), která spojuje několik malých paketů do jednoho velkého, je nyní aktivována při přepínání zpracování paketu na jiný CPU (pro vyvážení zátěže) při použití subsystému XDP (eXpress Data Path), který umožňuje zpracovávat pakety na úrovni síťového ovladače před jejich předáním síťovému zásobníku. Získaný nárůst výkonu zpracování TCP toků díky této optimalizaci může dosáhnout dvojnásobku.
- Za podmínek vysokého zatížení byla výkon funkce connect() zvýšena až dvojnásobně díky nahrazení spin-zámku mechanismem synchronizace RCU (Read-Copy-Update) při vyhledávání záznamů s informacemi o stranách spojení (zdrojové a cílové adresy) a porty. Dále bylo provedeno zlepšení hashování, které zajistilo nárůst výkonu o dalších 229%. IP adres Byla zrychlena implementace MPTCP (Multipath TCP), rozšíření protokolu TCP pro organizaci dodávky paketů současně přes několik cest různými síťovými rozhraními přiřazenými k různým IP adresám. MPTCP v režimu s jedním tokem je urychlen o 29%.
- V netfilteru bylo zastaveno provádění operací vyhledávání tras v FIB (Forwarding Information Base) při existenci socketu. Díky této optimalizaci se výkon zvýšil o 20%.
- Výkon UDP v podmínkách floodu byl zvýšen o 10% vyloučením zbytečných operací se strukturou sk_tsflags při příjmu paketů.
- Výkon UDP za podmínek fludování (flood) byl zvýšen o 10 % díky vyloučení nadbytečných operací se strukturou sk_tsflags při přijímání paketů.
Kromě toho bylo do vyvíjeného jádra Linux 6.15 přijato vylepšení pro ovladač souborového systému exFAT, které zrychluje operace odstraňování souborů. Dříve ovladač exFAT posílal na každý uvolněný klastr odstraňovaného souboru jednotlivé požadavky 'discard' skladům. Optimalizovaná verze seskupuje požadavky, takže čas odstranění testovacího souboru o velikosti 80 GB se zkrátil z 286 sekund na 1,6 sekundy.
Zdroj: opennet.ru
