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