'n Amazon-ingenieur het 'n regressie spesifiek vir Linux-kern 7.0 geïdentifiseer, wat na verwagting op 13 April vrygestel sal word. 'n Verandering in taakskeduleerderinstellings het gelei tot 'n beduidende vermindering in deurset en responsiwiteit wanneer PostgreSQL op ARM64-stelsels uitgevoer word. Met kern 7.0 het werkverrigting in die pgbench "simple-update"-toets byna twee keer gedaal, van 98 565 tot 50 751.
Die verlangsaming is veroorsaak deur die verandering van die standaard skeduleerder se preemption-modus van PREEMPT_NONE na PREEMPT_LAZY op argitekture wat dit ondersteun. Dit het veroorsaak dat PostgreSQL 55% van sy SVE-tyd spandeer het om s_lock() in gebruikersruimte te roep. Om hierdie probleem aan te spreek, word voorgestel om PREEMPT_NONE na die standaard terug te stel en dit van die ARCH_NO_PREEMPT-instelling te ontkoppel.
Peter Zijlstra, die outeur van die veranderinge wat die regressie veroorsaak het en die onderhouer van die taakskeduleerder en slotverwante kernsubstelsels, het gesê dat 'n regstelling in die PostgreSQL-kode geïmplementeer moet word. Om die prestasie-agteruitgang aan te spreek, het hy aanbeveel om die onlangs bygevoegde "rseq slice" (Restartable Sequences) uitbreiding in die PostgreSQL-kern te gebruik om die waarskynlikheid van slothouer-uitsetting te beperk.
Dit is nog onduidelik watter besluit Linus Torvalds sal neem, aangesien hy by die beginsel hou dat die kern nie werkverrigting moet afneem of gebruikersruimte-versoenbaarheid moet onderbreek nie. Aan die een kant is kern 7.0 in die finale toetsfase voor vrystelling, en die terugrol van die skedulerinstellings kan tot ander regressies lei. Aan die ander kant kan gebruikers 'n halvering van die werkverrigting van een van die gewildste databasisse ervaar.
Bron: opennet.ru
