Verkfræðingur hjá Amazon benti á afturför sem var sértæk fyrir Linux kjarna 7.0, sem áætlað er að komi út 13. apríl. Breyting á stillingum verkefnaáætlunar leiddi til verulegrar minnkunar á afköstum og svörun þegar PostgreSQL var keyrt á ARM64 kerfum. Með kjarna 7.0 tvöfaldaðist afköstin í pgbench „simple-update“ prófinu næstum því, úr 98565 í 50751.
Hægagangurinn stafaði af því að sjálfgefinn forgangsstillingur tímaáætlunargerðarmannsins var breyttur úr PREEMPT_NONE í PREEMPT_LAZY í arkitektúrum sem styðja það. Þetta olli því að PostgreSQL eyddi 55% af örgjörvatíma sínum í að kalla á s_lock() í notendarými. Til að leysa þetta vandamál er lagt til að setja PREEMPT_NONE aftur í sjálfgefið gildi og aftengja það frá ARCH_NO_PREEMPT stillingunni.
Peter Zijlstra, höfundur breytinganna sem ollu afturförinni og viðhaldsmaður verkefnaáætlunarinnar og kjarnakerfa sem tengjast lásum, sagði að lagfæring þyrfti að vera innleidd í PostgreSQL kóðanum. Til að bregðast við afkastamikilli lækkun mælti hann með því að nota nýlega bætta viðbótina „rseq slice“ (Restartable Sequences) í PostgreSQL kjarnanum til að takmarka líkur á að láshafar verði fjarlægðir.
Það er enn óljóst hvaða ákvörðun Linus Torvalds mun taka, þar sem hann fylgir þeirri meginreglu að kjarninn ætti ekki að draga úr afköstum eða trufla samhæfni notendarýmis. Annars vegar er kjarni 7.0 á lokaprófunarstigi fyrir útgáfu og að afturkalla stillingar á tímaáætlun gæti leitt til annarra afturförna. Hins vegar gætu notendur orðið fyrir helmingunartruflunum á afköstum eins vinsælasta gagnagrunnsins.
Heimild: opennet.ru
