Âûáèðàé : Ïîêóïàé : Èñïîëüçóé
0

Linux ñòàíåò â ðàçû áûñòðåå áëàãîäàðÿ àïäåéòó âñåãî ëèøü ôóíêöèè. Microsoft óæå ñêîïèðîâàëà åå äëÿ Windows

Linux äîëæåí ïîëó÷èòü ñóùåñòâåííûé ïðèðîñò ïðîèçâîäèòåëüíîñòè áëàãîäàðÿ ñêîðîìó îáíîâëåíèþ ñîêåòîâ .NET. Îíè ïîëó÷àò ïîääåðæêó ôóíêöèè io_uring. Çà íåñêîëüêî äíåé äî ýòîãî â íåå áûëè âíåñåíû èçìåíåíèÿ, óñòðàíÿþùèå ðÿä íåäîñòàòêîâ, êîòîðûå âûÿâèë èñêóññòâåííûé èíòåëëåêò. Microsoft óâèäåëà ïåðñïåêòèâó â io_uring è âíåäðèëà åå àíàëîã â Windows 11.

Linux ñòàíåò ëó÷øå

 áëèæàéøåì áóäóùåì äèñòðèáóòèâû Linux ïîëó÷àò ïðèðîñò ïðîèçâîäèòåëüíîñòè çà ñ÷åò îáíîâëåíèÿ ñîêåòîâ .NET â ñîñòàâå ÿäðà. Êàê ïèøåò ïîðòàë Neowin, îæèäàåòñÿ ìàñøòàáíîå îáíîâëåíèå – îíè ïåðåðàáàòûâàþòñÿ äëÿ èñïîëüçîâàíèÿ API io_uring.

io_uring – ýòî èíòåðôåéñ ñèñòåìíîãî âûçîâà äëÿ Linux, îí íóæåí äëÿ àñèíõðîííûõ îïåðàöèé ââîäà-âûâîäà. Äåáþòèðîâàë â 2019 ã. â ñîñòàâå ÿäðà Linux 5.1. Êàê ñîîáùàë CNews, â êîíöå ôåâðàëÿ 2026 ã. â io_uring áûë óñòðàíåí çíà÷èòåëüíûé áàã, íàéòè è ïî÷èíèòü êîòîðûé óäàëîñü ïðè ïîìîùè èñêóññòâåííîãî èíòåëëåêòà.

Ðàçðàáîò÷èê Áåí Àäàìñ (Ben Adams), âíîñÿùèé ñâîé âêëàä â .NET, ïîäòâåðäèë ñóùåñòâåííîå óëó÷øåíèå ïðîèçâîäèòåëüíîñòè ñîêåòîâ Linux .NET áëàãîäàðÿ ïåðåõîäó íà API io_uring. Ñóäÿ ïî âñåìó, àïäåéò ñòîèò æäàòü â îäíîé èç áëèæàéøèõ âåðñèé ÿäðà Linux – Àäàìñ ñîîáùèë îëá ýòîì â ñâîåì íåäàâíåì çàïðîñå íà ñëèÿíèå (pool request). Êàê ïèøåò Neowin, ýòî ÿâëÿåòñÿ çíà÷èòåëüíûì øàãîì âïåðåä äëÿ ïîëüçîâàòåëåé è ðàçðàáîò÷èêîâ, ðàáîòàþùèõ ñ ñîêåòàìè .NET.

Äëÿ ÷åãî íóæåí io_uring

Èíòåðôåéñ io_uring, â 2026 ã. îòìå÷àþùèé ñâîå ñåìèëåòèå, ñ ñàìîãî íà÷àëà ñîçäàâàëñÿ ñ öåëüþ ìèíèìèçèðîâàòü ñèñòåìíûå âûçîâû è ïåðåêëþ÷åíèÿ êîíòåêñòà. Ýòî ñàìî ïî ñåáå äîëæíî áûëî ïðèâåñòè ê îùóòèìîìó ïîâûøåíèþ ïðîèçâîäèòåëüíîñòè êàê äëÿ ôàéëîâîãî, òàê è äëÿ ñåòåâîãî ââîäà-âûâîäà.

Ðàçðàáîò÷èêè îáåùàþò îùóòèìî óñêîðèòü Linux ïðè ïîìîùè îäíîãî ïàò÷à

Ðàçðàáîòêà îêàçàëàñü íàñòîëüêî ïåðñïåêòèâíîé, ÷òî ïðèãëÿíóëàñü êîðïîðàöèè Microsoft. Îíà íàøëà åé ïðèìåíåíèå â ñîñòàâå Windows 11 – ñâîåé íîâåéøåé íàñòîëüíîé ÎÑ, âûøåäøåé â êîíöå 2021 ã. Êàê ïèøåò Neowin, íûíåøíÿÿ ðåàëèçàöèÿ API Windows I/O Ring, ïî âñåé âèäèìîñòè, â çíà÷èòåëüíîé ñòåïåíè îñíîâàíà íà API Linux io_uring, ñ íåêîòîðûìè èçìåíåíèÿìè, âíåñåííûìè, ïîìèìî ïðî÷åãî, â öåëÿõ ñîâìåñòèìîñòè.

×òî èçìåíèòñÿ

Àâòîð íîâîââåäåíèé â io_uring Áåí Àäàìñ ïðèâåë öåëûé ñïèñîê óëó÷øåíèé, êîòîðûå ïðèâíåñåò â ÿäðî åãî ïàò÷. Ñàì Àäàìñ â íàñòîÿùåå âðåìÿ ÿâëÿåòñÿ òåõíè÷åñêèì äèðåêòîðîì è ñîó÷ðåäèòåëåì êîìïàíèè ïî ðàçðàáîòêå âèäåîèãð Illyriad Games, à òàêæå îáëàäàòåëåì ñòàòóñà Microsoft MVP.

Ïî ñëîâàì Àäàìñà, åãî àïäåéò ñíèçèò íàãðóçêó íà öåíòðàëüíûé ïðîöåññîð íà 15-40% ïðè êàæäîì çàïðîñå HTTP/1.1. Èñòîðè÷åñêè ñëîæèëîñü òàê, ÷òî îáðàáîòêà îòêðûòîãî òåêñòà â TechEmpower ñèëüíî çàâèñèò îò ñèñòåìíûõ âûçîâîâ; ïàêåòíàÿ îáðàáîòêà io_uring íàïðÿìóþ ðåøàåò ýòó ïðîáëåìó.

Òàêæå Àäàìñ îáåùàåò óëó÷øåíèå ïðîïóñêíîé ñïîñîáíîñòè íà îäíî ñîåäèíåíèå HTTP/2 íà 5-15%. HTTP/2 ìåíåå çàâèñèì îò îïåðàöèé ââîäà-âûâîäà, ÷åì HTTP/1.1 íà óðîâíå TCP.

Ïîìèìî ïåðå÷èñëåííîãî, ïàò÷: ñíèçèò íàãðóçêó íà îïåðàòèâíóþ ïàìÿòü äëÿ íåàêòèâíûõ ñîåäèíåíèé íà 30-50%; ñíèçèò çàäåðæêè íà 10-20% íà çàïðîñ äëÿ êðàòêîâðåìåííûõ ñîåäèíåíèé ïðè èñõîäÿùèõ çàïðîñàõ HttpClient (ìåæäó ìèêðîñåðâèñàìè), óìåíüøèò çàäåðæêè íà 5-15% íà êàæäûé çàïðîñ ïðè ðàáîòå ñ äðàéâåðàìè áàç äàííûõ (Npgsql, MySQL Connector, Redis)

À áóäóò ëè íîâøåñòâà

Ýêñïåðòû Neowin îòìåòèëè, ÷òî âñå ïåðå÷èñëåííûå èçìåíåíèÿ áûëè ïðèâåäåíû â ñòàðîé âåðñèè îïèñàíèÿ ê ïàò÷ó Áåíà Àäàìñà. Îí áûë îïóáëèêîâàí âìåñòå ñ ýòèì îïèñàíèåì 17 ôåâðàëÿ 2026 ã.

Îäíàêî ÷åðåç íåñêîëüêî äíåé ñâåäåíèÿ î ïàò÷å áûëè â çíà÷èòåëüíîé ñòåïåíè ïåðåïèñàíû. Èç íèõ èñ÷åç ïåðå÷åíü áóêâàëüíî âñåõ îæèäàåìûõ èçìåíåíèé â ïðîèçâîäèòåëüíîñòè. Àäàìñ íå ñòàë óêàçûâàòü ïðè÷èíó ðåäàêòèðîâàíèÿ è â öåëîì ñòàðàëñÿ íå î÷åíü àêöåíòèðîâàòü íà ýòîì âíèìàíèå. Ïðåäûäóùàÿ âåðñèÿ îïèñàíèÿ óñïåëà ïîïàñòü â «Àðõèâ èíòåðíåòà».

Êîììåíòàðèè