ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ са ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π° ядрото Π½Π° Linux, Π·Π° Π΄Π° сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ производитСлността Π½Π° I/O ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΡ†ΠΈΡ‚Π΅

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€