Ameerika Ühendriikide insener tuvastas Linuxi 7.0, mille väljaandmine on planeeritud 13. aprilliks, spetsiifilise regressiooni. Ülesannete ajastaja seadete muutmine põhjustas PostgreSQL andmebaasi jõudluse ja reageerimise märkimisväärset langust ARM64 arhitektuuriga süsteemides. Kerni 7.0 kasutamisel vähenes „simple-update” testi pgbench läbilaskevõime peaaegu kaks korda - 98565-lt 50751-le.
Aeglustamine on põhjustatud säilitamise (preemption) muutmisest vaikimisi ajastaja PREEMPT_NONE-lt PREEMPT_LAZY-le arhitektuuridel, mis toetavad seda režiimi, mistõttu PostgreSQL-i kasutajaruumi viibimise aeg suurenes 55% protsessoriajast s_lock() kutse ajal. Probleemi lahendamiseks on soovitatud vaikimisi režiimi PREEMPT_NONE naasmist ja selle sidumise eemaldamist seade ARCH_NO_PREEMPTiga.
Peter Zijlstra, muudatuste autor, mille tõttu tekkis regressioon ja oluline osa ülesannete ajakava ja lukustus süsteemide hooldajatest, ütles, et parandused tuleb teha PostgreSQL koodis. Tulemuslanguse kõrvaldamiseks soovitas ta kasutada PostgreSQL-d hiljuti lisatud „rseq slice” (Taaskäivituvad Järjestused) laiendust, et piirata lukustuse omaniku välja tõukamise tõenäosust.
Ei ole selge, millise lahenduse võtab Linus Torvalds, kes järgib reeglit, et tuum ei tohiks halvendada jõudlust ega rikkuda ühilduvust kasutaja ruumiga. Ühest küljest on tuum 7.0 lõppfaasis testimisel enne väljaandmist ja ajakava seadetest tagasiviimine võib põhjustada muid regressioone, kuid teisest küljest võivad kasutajad kokku puutuda kahekordse jõudluse langusega ühe kõige populaarsema andmebaasi puhul.
Allikas: opennet.ru
