Jens Axboe, ΡΡΠ·Π΄Π°ΡΠ΅Π» Π½Π° io_uring ΠΈ I/O ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈΡΠ΅ CFQ, Deadline ΠΈ Noop, ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΠΈ Ρ I/O ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux. Π’ΠΎΠ·ΠΈ ΠΏΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ ΠΌΡ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅ BFQ ΠΈ mq-deadline I/O Scheduler-ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°Ρ Π° ΡΡΡΠ½ΠΎ ΠΌΡΡΡΠΎ ΠΏΠΎΠ½Π΅ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΈ NVMe ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠ°ΠΊΡΠΎ ΠΏΠΎΠΊΠ°Π·Π° ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°, Π΅Π΄Π½Π° ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π½Π° I/O Scheduler Π±ΡΡ Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠ°ΡΠΈ ΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ (βΡΡΡΡΠ΅Π·Π°Π½ΠΈΠ΅ Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅β, ΠΎΠΏΠΈΡ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅, Π·Π°Π΄ΡΡΠΆΠ°Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³Π° Π½ΠΈΡΠΊΠ°). ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠΊΠΈΡΠ΅, Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΈ Π²ΠΌΡΠΊΠ²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°, ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈΡΠ΅ ΡΠ΅ Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π² ΡΠ΅Π΄ΠΈΡΠ° ΡΠΈΡΡΠ°ΡΠΈΠΈ (Π² IOPS).
ΠΡΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π° BFQ Ρ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° fio, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΎΡ 567K Π½Π° 1551K IOPS, Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡΡΠ° Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π°ΠΌΠ°Π»Ρ ΠΎΡ 96% Π½Π° 30%. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° mq-deadline, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ»Π΅Π΄ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° NVMe ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΎΡ 1070K Π½Π° 2560K Π²Ρ
ΠΎΠ΄Π½ΠΎ/ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° (IOPS), Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡΡΠ° Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π°ΠΌΠ°Π»Ρ ΠΎΡ 94% Π½Π° 23%.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru