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

Ðàçðàáîò÷èêè Linux íàïèñàëè êðèâîé êîä è åäâà íå óáèëè Nginx è PostgreSQL. Îòêàòèòü èçìåíåíèÿ óäàëîñü â ïîñëåäíèé ìîìåíò

 êîä ÿäðà Linux âåðñèè 6.15 çàêðàëñÿ áàã, êîòîðûé âòðîå ñíèæàåò ïðîèçâîäèòåëüíîñòü Nginx, PostgreSQL è äðóãèõ ðàçðàáîòîê. Ïðîáëåìó íàøëè ñëó÷àéíî, è óñòðàíÿòü åå ïðèøëîñü â ñïåøêå, ÷òîáû óñïåòü äî ðåëèçà íîâîé ñáîðêè.

Áàã îäèí, ïðîáëåì – ìàññà

ßäðî Linux âåðñèè 6.15, â íàñòîÿùåå âðåìÿ íàõîäÿùååñÿ â ðàçðàáîòêå, îêàçàëîñü «çàðàæåíî» îøèáêîé, ðàäèêàëüíî ñíèæàþùåé ïðîèçâîäèòåëüíîñòü ñàìûõ ðàçíûõ òåõíîëîãèé. Êàê ïèøåò ïîðòàë Phoronix, èç-çà ýòîãî áàãà âòðîå ïàäàåò ñêîðîñòü ðàáîòû êàê ìèíèìóì ÏÎ äëÿ âåá-ñåðâåðîâ Nginx è ñèñòåìû óïðàâëåíèÿ áàçàìè äàííûõ PostgreSQL.

Linux 6.15 ïîêà íå âûøåë. Ê ìîìåíòó âûõîäà ìàòåðèàëà áûëà äîñòóïíà ëèøü òðåòüÿ òåñòîâàÿ ñáîðêà (RC3), äàòèðîâàííàÿ 20 àïðåëÿ 2025 ã. Ïóáëèêàöèÿ ñòàáèëüíîé âåðñèè Linux 6.15 îæèäàåòñÿ â ìàå èëè íà÷àëå èþíÿ 2025 ã.

Ïî íà÷àëó âî âðåìÿ ðàçðàáîòêè ÿäðà çàêðàâøèéñÿ â íåãî «çàìåäëÿòîð» íèêàê ñåáÿ íå ïðîÿâèë. Îáíàðóæèòü åãî óäàëîñü ëèøü îïûòíûì ïóòåì – îí ïîêàçàë ñåáÿ âî âñåé êðàñå êàê ðàç ïðè òåñòèðîâàíèè ðàáîòû Nginx íà íîâîé âåðñèè ÿäðà.

Èñòî÷íèêîì ïðîáëåìû îêàçàëñÿ ïàò÷ çà àâòîðñòâîì ðàçðàáîò÷èêà ÿäðà Àëåêñåÿ Ñòàðîâîéòîâà. Åãî íàöèîíàëüíîñòü íå óñòàíîâëåíà, à åãî ýëåêòðîííàÿ ïî÷òà çàðåãèñòðèðîâàíà â Google Mail.

Îäèí íåáîëüøîé áàã ñïîñîáåí ñëîìàòü âñå ÿäðî Linux

Ñòàðîâîéòîâ îòïðàâèë ïðîáëåìíûé ïàò÷ ê ÿäðó, à êîãäà åìó óêàçàëè íà òî, ê ÷åìó ïðèâåëî åãî âíåäðåíèå, îí íàïèñàë: «Òðåõêðàòíàÿ ðåãðåññèÿ? Âàó. Ñïàñèáî íà íàâîäêó. ß ñìîòðþ íà ïàò÷ è íè÷åãî íå âèæó. Ïîäêëþ÷ó äðóãèõ ñïåöèàëèñòîâ».

Ïîìîùü ïðÿìèêîì èç Åâðîïû

Ñ òå÷åíèåì âðåìåíè âûÿñíèëîñü, ÷òî êîä Ñòàðîâîéòîâà ëîìàåò íå òîëüêî Nginx. Ïîä óäàð ïîïàëè ñàìûå ðàçíûå òåõíîëîãèè è ðàçðàáîòêå, â òîì ÷èñëå ñèñòåìû óïðàâëåíèÿ áàçàìè äàííûõ ClickHouse è PostgreSQL. Íàðÿäó ñ íèìè ïîñòðàäàëî èíæåíåðíîå ÏÎ OpenFOAM, à òàêæå óòèëèòà Memcached äëÿ êýøèðîâàíèÿ äàííûõ â îïåðàòèâíîé ïàìÿòè íà îñíîâå õåø-òàáëèöû.

Ïî÷èíèòü âñå óäàëîñü èíæåíåðó íåìåöêîé êîìïàíèè SUSE Âëàñòèìèëó Áàáêå (Vlastimil Babka), ïèøåò Phoronix. Îí çà îäíó íî÷ü ïðîâåë àíàëèç ïîäñèñòåìû slab è çàîäíî ïðîàíàëèçèðîâàë âëèÿíèå íîâîãî êîìïèëÿòîðà GCC, ãäå è íàøåë ïîäñêàçêó äëÿ ðåøåíèÿ ïðîáëåìû.  êîíå÷íîì èòîãå îí ïîäãîòîâèë àïäåéò, íèâåëèðóþùèé íåãàòèâíîå âëèÿíèå ïàò÷à Ñòàðîâîéòîâà íà ðàáîòó Nginx è ïð.

Ïàò÷ Âëàñòèìèëà áûë ïðîòåñòèðîâàí íåñêîëüêèìè ðàçðàáîò÷èêàìè. Îíè ïîäòâåðäèëè, ÷òî ïðåäëîæåííûé èì êîä äåéñòâèòåëüíî ðàáîòàåò – ïðîáëåìà ñ ðåãðåññèåé ïðîèçâîäèòåëüíîñòè PostgreSQL, ClickHouse è ïð. áûëà óñòðàíåíà.

Ïîìîùü ñàìîãî ãëàâíîãî

Àëåêñåé Ñòàðîâîéòîâ âûÿñíèë òàêæå, ÷òî ðåãðåññèþ ïðîèçâîäèòåëüíîñòè áëàãîäàðÿ åãî ïàò÷ó çàòðîíóëà åùå è Netperf – ÏÎ äëÿ òåñòèðîâàíèÿ ïðîèçâîäèòåëüíîñòè ñåòåé è ñåòåâûõ ïðèëîæåíèé. Ñ ýòîé ïðîáëåìîé è ïðîñüáîé î ïîìîùè ñ åå ðåøåíèåì îí îáðàòèëñÿ íàïðÿìóþ ê Ëèíóñó Òîðâàëüäñó (Linus Torvalds), ñîçäàòåëþ Linux.

Ê ìîìåíòó âûõîäà ìàòåðèàëà íå áûëî èçâåñòíî, îòðåàãèðîâàë ëè Òîðâàëüäñ íà ïðîñüáó Ñòàðîâîéòîâà. Îäíàêî ðàíåå òîò êðàéíå íåãàòèâíî âûñêàçûâàëñÿ î ðîññèÿíàõ, ó÷àñòâóþùèõ â ðàçðàáîòêå Linux – îí íàçûâàë èõ «êó÷êîé ðóññêèõ òðîëëåé».

Òàêæå Òîðâàëüäñ óæå óñïåë ðàñêðèòèêîâàòü åùå íå âûøåäøóþ ñáîðêó Linux 6.15. Êàê ñîîáùàë CNews, â êîíöå ìàðòà 2025 ã. ñîçäàòåëü Linux çàÿâèë, ÷òî ÷àñòü êîäà Linux, îòíîñÿùàÿñÿ ê òåõíîëîãèè òåñòèðîâàíèÿ hdrtest – íàñòîÿùèé ìóñîð. Îí ñêàçàë, ÷òî ýòîò êîä «äîëæåí óìåðåòü». Îí òàêæå èñïîëüçîâàë íåëèòåðàòóðíûå âûðàæåíèÿ â àäðåñ ñàìîé òåõíîëîãèè hdrtest, çàÿâèâ, ÷òî îíà ëèøü çàõëàìëÿåò ÿäðî. Hdrtest íóæíà äëÿ òåñòèðîâàíèÿ êîððåêòíîé ðàáîòû äðàéâåðîâ äëÿ èíòåãðèðîâàííîé ãðàôèêè ïðîöåññîðîâ Intel.

Êîììåíòàðèè