In de codebasis van de Linux-kernel, waarop release 6.15 is gebaseerd, zijn een aantal wijzigingen met optimalisaties aangenomen die in bepaalde situaties de prestaties van netwerkoperaties aanzienlijk verhogen:
- De optimalisatie GRO (Generic Receive Offload), die meerdere kleine pakketten samenvoegt tot ƩƩn groot pakket, is nu actief wanneer de verwerking van een pakket naar een andere CPU wordt omgeschakeld (voor belastingverdeling) bij gebruik van de XDP-subsystem (eXpress Data Path), waardoor pakketten op het niveau van de netwerkkdriver kunnen worden verwerkt voordat ze naar de netstack worden verzonden. De prestatieverbetering voor de verwerking van TCP-stromen door het toepassen van deze optimalisatie kan oplopen tot het dubbele.
- Onder zware belasting is de prestaties van de connect() functie verdubbeld door de spin-lock te vervangen door het synchronisatie-mechanisme RCU (Read-Copy-Update) bij het zoeken naar records met informatie over de partijen van de verbinding (bron en doel en poorten). Daarnaast is de hashing geoptimaliseerd, wat nog eens 229% prestatieverbetering heeft opgeleverd. IP-adressen De implementatie van MPTCP (Multipath TCP), een uitbreiding van het TCP-protocol voor het gelijktijdig afleveren van pakketten via meerdere routes door verschillende netwerkinterfaces die aan verschillende IP-adressen zijn gebonden, is versneld. MPTCP in mode met ƩƩn stroom is met 29% versneld.
- In netfilter is de uitvoering van routingszoekopdrachten in FIB (Forwarding Information Base) gestopt als er een socket aanwezig is. Dankzij deze optimalisatie is de prestaties met 20% gestegen.
- De UDP-prestaties onder flood-omstandigheden zijn met 10% verhoogd door overbodige bewerkingen met de structuur sk_tsflags bij het ontvangen van pakketten uit te sluiten.
- De UDP-prestaties onder floding-omstandigheden zijn met 10% verhoogd door overbodige bewerkingen van de sk_tsflags-structuur bij het ontvangen van pakketten uit te sluiten.
Bovendien is er een wijziging goedgekeurd in de in ontwikkeling zijnde Linux-kernel 6.15 voor de exFAT-bestandssysteemdriver, die de bestandsverwijdering versnelt. Voorheen stuurde de exFAT-driver individuele 'discard'-opdrachten naar de schijven voor elke vrijgegeven cluster van het verwijderde bestand. De geoptimaliseerde versie groepeert deze opdrachten, waardoor de tijd voor het verwijderen van een testbestand van 80 GB is verminderd van 286 seconden tot 1,6 seconden.
Bron: opennet.ru
