io_uring рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдмрдлрд░ рд░рд╛рдЗрдЯрдЪрд╛ рд╡рд╛рдкрд░ XFS рдордзреАрд▓ рд╡рд┐рд▓рдВрдмрддрд╛ 80 рдкрдЯреАрдиреЗ рдХрдореА рдХрд░рддреЗ

Linux рдХрд░реНрдирд▓ 5.20 рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреЕрдЪреЗрд╕рдЪреА рдорд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, io_uring рдореЗрдХреЕрдирд┐рдЭрдордЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди XFS рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорд▓рд╛ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдмрдлрд░ рд░рд╛рдЗрдЯрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ. fio рдЯреВрд▓рдХрд┐рдЯ (1 рдереНрд░реЗрдб, 4kB рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░, 600 рд╕реЗрдХрдВрдж, рдЕрдиреБрдХреНрд░рдорд┐рдХ рд▓реЗрдЦрди) рд╡рд╛рдкрд░реВрди рдШреЗрддрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рдордЧрд┐рд░реА рдЪрд╛рдЪрдгреНрдпрд╛ 77k рддреЗ 209k рдкрд░реНрдпрдВрдд рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ рдСрдкрд░реЗрд╢рдиреНрд╕ (IOPS) рдордзреНрдпреЗ рд╡рд╛рдв рджрд░реНрд╢рд╡рддрд╛рдд, рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдиреНрд╕рдлрд░ рджрд░ 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 3000

2022 рдЪреНрдпрд╛ рдордзреНрдпрд╛рдкрд░реНрдпрдВрдд io_uring рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдд рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛рдВрд╕рд╛рдареА, рдХрд░реНрдирд▓ рд░реЗрд╕рд┐рдкреА 2022 рдордзреАрд▓ рдЕрд╣рд╡рд╛рд▓рд╛рдЪреНрдпрд╛ рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдЖрдгрд┐ рд╡реНрд╣рд┐рдбрд┐рдУ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрд╕рд╣ рдкрд░рд┐рдЪрд┐рдд рд╡реНрд╣рд╛рд╡реЗ рдЕрд╢реА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдХрд░реНрдирд▓рдордзреНрдпреЗ рдЖрдзреАрдЪ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рдЖрдгрд┐ рдирд┐рдпреЛрдЬрд┐рдд рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рдереЛрдбрдХреНрдпрд╛рдд рдирдореВрдж рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрдг рдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рд╢рдХрддрд╛:

  • рдорд▓реНрдЯреА-рд╢реЙрдЯ рд╕реНрд╡реАрдХрд╛рд░().
  • рдПрдХрд╛рдзрд┐рдХ (рдорд▓реНрдЯреА-рд╢реЙрдЯ) recv() - рдЪрд╛рдЪрдгреНрдпрд╛рдВрдиреБрд╕рд╛рд░, 6-8% рдЪреА рд╡рд╛рдв - 1150000 рддреЗ 1200000 RPS.
  • liburing рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреЗ, рдХрд╛рдЧрджрдкрддреНрд░реЗ рдЖрдгрд┐ рдЪрд╛рдЪрдгреНрдпрд╛ рдЬреЛрдбрдгреЗ.

io_uring рдЪреНрдпрд╛ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреАрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд, рд╕реНрд▓рд╛рдЗрдбреНрд╕ Windows 11 рдордзреАрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ тАЬI/O рд░рд┐рдВрдЧреНрдЬтАЭ рд╕реЛрдмрдд рддрд╕реЗрдЪ рдХреНрд░реЙрд╕-рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рд╢рдХреНрдпрддреЗрдЪрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛рдд, рдкрд░рдВрддреБ рдЗрддрд░ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░реАрд▓ рд▓реЗрдЦрдХрд╛рдЪреНрдпрд╛ рд╕реНрд▓рд╛рдЗрдбрд╡рд░ рдкреНрд░рд╢реНрдирдЪрд┐рдиреНрд╣рд╛рд╕рд╣ рдлрдХреНрдд рдлреНрд░реАрдмреАрдПрд╕рдбреАрдЪрд╛ рдЙрд▓реНрд▓реЗрдЦ рдЖрд╣реЗ.



рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛