ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ асинхронной Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ записи Π½Π° Π±Π°Π·Π΅ io_uring Π΄ΠΎ 80 Ρ€Π°Π· снизило Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² XFS

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° сСрия ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ядро Linux 5.20, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ асинхронной Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ записи Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму XFS ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° io_uring. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ тСсты ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ инструмСнтария fio (1 ΠΏΠΎΡ‚ΠΎΠΊ, Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° 4ΠΊΠ±, 600 сСкунд, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ запись), ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ числа опСрация Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π² сСкунду (IOPS) ΠΎΡ‚ 77k Π΄ΠΎ 209k, скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ 314MB/s Π΄ΠΎ 854MB/s ΠΈ падСния Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΎΡ‚ 9600ns Π΄ΠΎ 120ns (80 Ρ€Π°Π·). sequential writes: without patch with patch 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().
  • мноТСствСнного (multi-shot) recv() — ΠΏΠΎ тСстам прирост 6-8% — ΠΎΡ‚ 1150000 Π΄ΠΎ 1200000 RPS.
  • ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ исправлСния Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ liburing, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ тСстов.

Π’ контСкстС пСрСносимости io_uring Π½Π° слайдах упоминаСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΡ…ΠΎΠΆΠ΅ΡΡ‚ΡŒ с «I/O Rings», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² подсистСмС Direct Storage Π² Windows 11, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ кроссплатформСнной Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π½Π° слайдС Π°Π²Ρ‚ΠΎΡ€Π° упомянута Ρ‚ΠΎΠ»ΡŒΠΊΠΎ FreeBSD со Π·Π½Π°ΠΊΠΎΠΌ вопроса.



Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru