ΠΡΡ Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 5.20, Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ Π±ΡΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° XFS, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° io_uring. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΈΠ·Π²ΡΡΡΠ΅Π½ΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° fio (1 Π½ΠΈΡΠΊΠ°, ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ° 4kb, 600 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅Π½ Π·Π°ΠΏΠΈΡ), ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΎ/ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Π° (IOPS) ΠΎΡ 77k Π½Π° 209k, ΡΠΊΠΎΡΠΎΡΡΠΈ Π½Π° ΡΡΠ°Π½ΡΡΠ΅Ρ ΠΎΡ 314MB/s Π΄ΠΎ 854MB/s ΠΈ Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡΡΠ° ΠΏΠ°Π΄Π° ΠΎΡ 9600ns Π΄ΠΎ 120ns (80 ΠΏΡΡΠΈ). ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈ Π·Π°ΠΏΠΈΡΠΈ: Π±Π΅Π· ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ libaio psync iops: 77k 209k 195K 233K bw: 314MB/s 854MB/s 790MB/s 953MB/s clat: 9600ns 120ns 540ns 3000ns
ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ ΠΎΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° io_uring ΠΊΡΠΌ ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° 2022 Π³., ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°ΡΡ ΡΡΡ ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ·Π°ΠΏΠΈΡΠ° Π½Π° ΠΎΡΡΠ΅ΡΠ° ΠΎΡ Kernel Recipes 2022. ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΈ, ΡΠ° ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈ Π² ΠΎΠ±Ρ ΠΏΡΠ΅Π³Π»Π΅Π΄, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°:
- ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ (multi-shot) accept().
- multiple (multi-shot) recv() - ΡΠΏΠΎΡΠ΅Π΄ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅, ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 6-8% - ΠΎΡ 1150000 Π΄ΠΎ 1200000 RPS.
- Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° liburing, Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅.
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° io_uring, ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΈΠΊΠΈ Ρ βI / O ΠΏΡΡΡΡΠ΅Π½ΠΈΡΠ΅β, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Direct Storage Π² Windows 11, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π½Π° ΡΠ»Π°ΠΉΠ΄Π° Π½Π° Π°Π²ΡΠΎΡΠ° ΡΠ°ΠΌΠΎ FreeBSD ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π° Ρ Π²ΡΠΏΡΠΎΡΠΈΡΠ΅Π»Π΅Π½ Π·Π½Π°ΠΊ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru