I/O рд╢реЗрдбреНрдпреБрд▓рд░рдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА Linux рдХрд░реНрдирд▓рд╕рд╛рдареА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЖрд╣реЗ

io_uring рдЖрдгрд┐ I/O рд╢реЗрдбреНрдпреБрд▓рд░ CFQ, Deadline рдЖрдгрд┐ Noop рдЪреЗ рдирд┐рд░реНрдорд╛рддреЗ Jens Axboe рдпрд╛рдВрдиреА рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓рдордзреНрдпреЗ I/O рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирд╕рд╣ рддреНрдпрд╛рдВрдЪреЗ рдкреНрд░рдпреЛрдЧ рд╕реБрд░реВ рдареЗрд╡рд▓реЗ рдЖрд╣реЗрдд. рдпрд╛рд╡реЗрд│реА, рддреНрдпрд╛рдЪреЗ рд▓рдХреНрд╖ BFQ рдЖрдгрд┐ mq-рдбреЗрдбрд▓рд╛рдЗрди I/O рд╢реЗрдбреНрдпреБрд▓рд░рдХрдбреЗ рдЧреЗрд▓реЗ, рдЬреЗ рдХрдореАрддрдХрдореА рд╣рд╛рдп-рд╕реНрдкреАрдб NVMe рдбреНрд░рд╛рдЗрд╡реНрд╣рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЕрдбрдерд│реЗ рдард░рд▓реЗ.

рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, I/O рд╢реЗрдбреНрдпреБрд▓рд░ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рд╕рдмрд╕реЙрдкреНрдЯрд┐рдорд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреЗ рдПрдХ рдкреНрд░рдореБрдЦ рдХрд╛рд░рдг рдореНрд╣рдгрдЬреЗ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд▓реЙрдХрдордзреНрдпреЗ рд╕рдорд╕реНрдпрд╛ (тАЬрд▓реЙрдХ рдХрдВрдЯреЗрдВрд╢рдитАЭ, рджреБрд╕рд▒реНрдпрд╛ рдереНрд░реЗрдбрджреНрд╡рд╛рд░реЗ рд▓реЙрдХ рдорд┐рд│рд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди). рд▓реЙрдХреНрд╕рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛ рд╡рд╛рдж рдХрдореА рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЙрдкрд╛рдпрдпреЛрдЬрдирд╛рдВрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдЬрд╕реЗ рдХреА рдбрд┐рд╕реНрдкреЕрдЪрдЪреЗ рд╕реАрд░рд┐рдпрд▓рд╛рдпрдЭреЗрд╢рди рдЖрдгрд┐ рдХреНрд╡реЗрд░реА рдЗрдиреНрд╕рд░реНрдЯреЗрд╢рди, рд╢реЗрдбреНрдпреБрд▓рд░рдЪреА рдЧрддреА рдЕрдиреЗрдХ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ (IOPS рдордзреНрдпреЗ) рд▓рдХреНрд╖рдгреАрдп рд╡рд╛рдврд▓реА рдЖрд╣реЗ.

fio рдпреБрдЯрд┐рд▓рд┐рдЯреАрд╕рд╣ BFQ рд╢реЗрдбреНрдпреБрд▓рд░рдЪреА рдЪрд╛рдЪрдгреА рдХрд░рддрд╛рдирд╛, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди 567K рд╡рд░реВрди 1551K IOPS рдкрд░реНрдпрдВрдд рд╡рд╛рдврд▓реЗ, рдЖрдгрд┐ рд▓реЙрдХ рд╡рд┐рд╡рд╛рдж 96% рд╡рд░реВрди 30% рдкрд░реНрдпрдВрдд рдХрдореА рдЭрд╛рд▓рд╛. mq-рдбреЗрдбрд▓рд╛рдЗрдирдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, NVMe рдбреНрд░рд╛рдЗрд╡реНрд╣ рд╡рд╛рдкрд░рддрд╛рдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреЕрдЪ рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди 1070K рд╡рд░реВрди 2560K рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ рдСрдкрд░реЗрд╢рдиреНрд╕ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж (IOPS) рдкрд░реНрдпрдВрдд рд╡рд╛рдврд▓реЗ рдЖрдгрд┐ рд▓реЙрдХ рд╡рд┐рд╡рд╛рдж 94% рд╡рд░реВрди 23% рдкрд░реНрдпрдВрдд рдХрдореА рдЭрд╛рд▓рд╛.

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

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