เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ‚เบญเบ‡ asynchronous buffered เบ‚เบฝเบ™โ€‹เป‚เบ”เบโ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆ io_uring เบซเบผเบธเบ”โ€‹เบœเปˆเบญเบ™ latency เปƒเบ™ XFS เป€เบ–เบดเบ‡ 80 เป€เบงโ€‹เบฅเบฒ

ะžะฟัƒะฑะปะธะบะพะฒะฐะฝะฐ ัะตั€ะธั ะฟะฐั‚ั‡ะตะน ะดะปั ะฒะบะปัŽั‡ะตะฝะธั ะฒ ัะดั€ะพ 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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™