io_uring рд▓реЗ XFS рдорд╛ 80 рдкрдЯрдХ рд╕рдореНрдо рд╡рд┐рд▓рдореНрдмрддрд╛ рдШрдЯрд╛рдПрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдмрдлрд░ рдЧрд░рд┐рдПрдХреЛ рд▓реЗрдЦрдХреЛ рдкреНрд░рдпреЛрдЧ

io_uring рдореЗрдХрд╛рдирд┐рдЬрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ XFS рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдмрдлрд░ рд░рд╛рдЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкреНрджреИ, Linux рдХрд░реНрдиреЗрд▓ 5.20 рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдкреНрдпрд╛рдЪрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред 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 рдХреЛ рд░рд┐рдкреЛрд░реНрдЯрдХреЛ рд╕реНрд▓рд╛рдЗрдб рд░ рднрд┐рдбрд┐рдпреЛ рд░реЗрдХрд░реНрдбрд┐рдЩрд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реЛрд╕реНред рдХрд░реНрдиреЗрд▓рдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд░ рдпреЛрдЬрдирд╛рдмрджреНрдз рдЧрд░рд┐рдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдкрдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рд╕рдорд░реНрдерди рдиреЛрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

  • рдмрд╣реБ-рд╢рдЯ рд╕реНрд╡реАрдХрд╛рд░ ()ред
  • рдорд▓реНрдЯрд┐рдкрд▓ (рдорд▓реНрдЯреА-рд╢рдЯ) recv() - рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрд╕рд╛рд░, 6-8% рдХреЛ рд╡реГрджреНрдзрд┐ - 1150000 рдмрд╛рдЯ 1200000 RPS рд╕рдореНрдоред
  • liburing рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд░ рд╕рдорд╛рдзрд╛рди, рдХрд╛рдЧрдЬрд╛рдд рд░ рдкрд░реАрдХреНрд╖рдг рдердкреНрджреИред

io_uring рдХреЛ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреАрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрд▓реЗ Windows 11 рдорд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рднрдгреНрдбрд╛рд░рдг рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ "I/O рд░рд┐рдВрдЧрд╣рд░реВ" рд╕рдБрдЧ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдорд╛рдирддрд╛рд╣рд░реВ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрджрдЫ, рд╕рд╛рдереИ рдХреНрд░рд╕-рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛, рддрд░ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ред рд▓реЗрдЦрдХрдХреЛ рд╕реНрд▓рд╛рдЗрдбрдорд╛, FreeBSD рдорд╛рддреНрд░ рдкреНрд░рд╢реНрди рдЪрд┐рдиреНрд╣рдХреЛ рд╕рд╛рде рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдЫред



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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди