io_uring เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช…เชธเซเชฎเซ‡เชณ เชฌเชซเชฐ เชฐเชพเช‡เชŸเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— XFS เชฎเชพเช‚ 80 เช—เชฃเซ‹ เชธเซเชงเซ€ เช˜เชŸเชพเชกเซ€ เชฒเซ‡เชŸเชจเซเชธเซ€

Linux เช•เชฐเซเชจเชฒ 5.20 เชฎเชพเช‚ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‡เชšเซ‹เชจเซ€ เชถเซเชฐเซ‡เชฃเซ€ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, io_uring เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ XFS เชซเชพเช‡เชฒ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชฌเชซเชฐ เชฐเชพเช‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡. เชซเชฟเช“ เชŸเซ‚เชฒเช•เซ€เชŸ (1 เชฅเซเชฐเซ‡เชก, 4kB เชฌเซเชฒเซ‹เช• เชธเชพเชˆเช, 600 เชธเซ‡เช•เชจเซเชก, เช•เซเชฐเชฎเชฟเช• เชฒเช–เชพเชฃ) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชชเซเชฐเชฆเชฐเซเชถเชจ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ 77k เชฅเซ€ 209k เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก (IOPS) เช‡เชจเชชเซเชŸ/เช†เช‰เชŸเชชเซเชŸ เช•เชพเชฎเช—เซ€เชฐเซ€เชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡, เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชฐเซ‡เชŸ 314MB/s เชฅเซ€ 854MB/ s เช…เชจเซ‡ เชฒเซ‡เชŸเชจเซเชธเซ€เชฎเชพเช‚ 9600ns เชฅเซ€ 120ns (80 เชตเช–เชค) เชธเซเชงเซ€เชจเซ‹ เช˜เชŸเชพเชกเซ‹. เช•เซเชฐเชฎเชฟเช• เชฒเช–เซ‡ เช›เซ‡: เชชเซ‡เชš เชตเช—เชฐ เชชเซ‡เชš เชฒเชฟเชฌเชพเชˆเช“ เชธเชพเชˆเช‚เช• เช†เชˆเช“เชชเซเชธ: 77k 209k 195K 233K bw: 314MB/s 854MB/s 790MB/s 953MB/s clat: 9600ns 120ns 540ns 3000ns

2022 เชจเชพ เชฎเชงเซเชฏ เชธเซเชงเซ€ io_uring เชจเซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชฐเชธ เชงเชฐเชพเชตเชคเชพ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡, เชเชตเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเซ‡ เช•เชฐเซเชจเชฒ เชฐเซ‡เชธเชฟเชชเซ€ 2022 เชจเชพ เชฐเชฟเชชเซ‹เชฐเซเชŸเชจเซ€ เชธเซเชฒเชพเช‡เชกเซเชธ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเซ‡เช•เซ‹เชฐเซเชกเชฟเช‚เช—เชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เชฅเชพเช“. เช•เชฐเซเชจเชฒเชฎเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชธเชฎเชพเชตเชฟเชทเซเชŸ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช…เชจเซ‡ เช†เชฏเซ‹เชœเชฟเชค เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‹ เชŸเซ‚เช‚เช•เชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เช† เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐ เชจเซ‹เช‚เชงเซ€ เชถเช•เซ‹ เช›เซ‹:

  • เชฎเชฒเซเชŸเชฟ-เชถเซ‹เชŸ เชธเซเชตเซ€เช•เชพเชฐเซ‹().
  • เชฌเชนเซเชตเชฟเชง (เชฎเชฒเซเชŸเซ€-เชถเซ‹เชŸ) recv() - เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช…เชจเซเชธเชพเชฐ, 6-8% เชจเซ‹ เชตเชงเชพเชฐเซ‹ - 1150000 เชฅเซ€ 1200000 RPS.
  • เชฒเชพเช‡เชฌเชฐเชฟเช‚เช— เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชฎเชพเช‚ เช…เชชเชกเซ‡เชŸ เช…เชจเซ‡ เชธเซเชงเชพเชฐเชพ, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชจเซ‡ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡.

io_uring เชจเซ€ เชชเซ‹เชฐเซเชŸเซ‡เชฌเชฟเชฒเชฟเชŸเซ€เชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚, เชธเซเชฒเชพเช‡เชกเซเชธ เชตเชฟเชจเซเชกเซ‹เช 11 เชฎเชพเช‚ เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชธเชฌเชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเซ€ "I/O เชฐเชฟเช‚เช—เซเชธ" เชธเชพเชฅเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชธเชฎเชพเชจเชคเชพเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฎเชœ เช•เซเชฐเซ‹เชธ-เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เช“เชชเชฐเซ‡เชถเชจเชจเซ€ เชถเช•เซเชฏเชคเชพ, เชชเชฐเช‚เชคเซ เช…เชจเซเชฏ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเซ€ เชฒเซ‡เช–เช•เชจเซ€ เชธเซเชฒเชพเช‡เชกเชฎเชพเช‚ เชชเซเชฐเชถเซเชจ เชšเชฟเชนเซเชจ เชธเชพเชฅเซ‡ เชฎเชพเชคเซเชฐ เชซเซเชฐเซ€เชฌเซ€เชเชธเชกเซ€เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช›เซ‡.



เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹