Π ΡΡΡΡΠ°Π²Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Linux, Π½Π° ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΎΡΠΎΡΠΌΡ Π²Π΅ΡΡΠΈΡ 6.15, Π΅ ΠΏΡΠΈΠ΅ΡΠ° ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π² ΡΠ΅Π΄ΠΈΡΠ° ΡΠΈΡΡΠ°ΡΠΈΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° GRO (Generic Receive Offload), ΠΊΠΎΡΡΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ°Π»ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² Π΅Π΄ΠΈΠ½ Π³ΠΎΠ»ΡΠΌ, Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ Π½Π° Π΄ΡΡΠ³ CPU (Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ), ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° XDP (eXpress Data Path), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΡΠ΅Π΄ΠΈ ΡΡΡ Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΊ. Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΎΡ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° TCP ΠΏΠΎΡΠΎΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ Π΄ΠΎ Π΄Π²Π° ΠΏΡΡΠΈ.
- ΠΡΠΈ ΡΠΈΠ»Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° connect() Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Π΄Π²Π° ΠΏΡΡΠΈ ΡΡΠ΅Π· Π·Π°ΠΌΡΠ½Π° Π½Π° spin-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ RCU (Read-Copy-Update) ΠΏΡΠΈ ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠΈ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ (ΠΈΠ·Ρ ΠΎΠ΄ΡΡΠΈ ΠΈ ΡΠ΅Π»Π΅Π²ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΈ ΠΏΠΎΡΡΠΎΠ²Π΅). ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ, ΠΊΠΎΡΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Ρ ΠΎΡΠ΅ 229%.
- Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° MPTCP (Multipath TCP), ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ°ΡΡΡΡΡΠ° ΡΡΠ΅Π· ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ, Π΅ ΡΡΠΊΠΎΡΠ΅Π½Π°. MPTCP Π² ΡΠ΅ΠΆΠΈΠΌ Ρ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π΅ ΡΡΠΊΠΎΡΠ΅Π½ Ρ 29%.
- Π netfilter, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠΊΠ΅Ρ, Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈ Π² FIB (Forwarding Information Base). Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π°ΡΠ°ΡΠ½Π° Ρ 20%.
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° UDP Π² ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° ΡΡΠ΄ (flood) Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Ρ 10%, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° sk_tsflags ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΎΡΠΎ ΡΠ΄ΡΠΎ Π½Π° Linux 6.15 Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π·Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° exFAT, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠΊΠΎΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠΎ-ΡΠ°Π½ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡΡ exFAT ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ "discard" Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΊΠ»Π°ΡΡΠ΅Ρ Π½Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ». ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΠΊΠ°ΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ² ΡΠ°ΠΉΠ» Ρ ΡΠ°Π·ΠΌΠ΅Ρ 80 ΠΠ Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ ΠΎΡ 286 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π½Π° 1.6 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
