V jádře Linux 7.0 byla odhalena regrese, která snižuje výkon PostgreSQL na polovinu

Inžinier z firmy Amazon identifikoval regresiu špecifickú pre Linux jadro 7.0, ktorého vydanie sa očakáva 13. apríla. Zmena nastavení plánovača úloh viedla k značnému poklesu priepustnosti a reakčnosti pri práci s DBMS PostgreSQL na systémoch s architektúrou ARM64. Pri používaní jadra 7.0 sa výkon pri teste pgbench "simple-update" znížil takmer na polovicu — z 98565 na 50751.

Spomalenie spôsobila zmena režimu preemptie v plánovači predvolene s PREEMPT_NONE na PREEMPT_LAZY na architektúrach, ktoré tento režim podporujú, čoho dôsledkom je, že v používateľskom priestore PostgreSQL stráca 55% CPU času na volanie s_lock(). Na vyriešenie problému sa navrhuje vrátiť predvolene režim PREEMPT_NONE a odstrániť jeho viazanie na nastavenie ARCH_NO_PREEMPT.

Peter Zijlstra, autor zmien, ktoré spôsobili regresiu, a správca plánovača úloh a súvisiacich subsystémov jadra, uviedol, že oprava musí byť vykonaná v kóde PostgreSQL. Na odstránenie poklesu výkonu odporučil implementovať v PostgreSQL nedávno do jadra pridané rozšírenie "rseq slice" (Restartovateľné sekvencie) na obmedzenie pravdepodobnosti preemptie držiteľa zámku.

Zatiaľ nie je jasné, aké riešenie zvolí Linus Torvalds, ktorý sa riadi pravidlom, že jadro by nemalo zhoršiť výkon a naraziť na problémy s kompatibilitou s používateľským priestorom. Na jednej strane je jadro 7.0 v poslednej fáze testovania pred vydaním a návrat k nastaveniam plánovača môže viesť k iným regresiám, ale na druhej strane sa používatelia môžu stretnúť s dvojitým poklesom výkonu jedného z najpopulárnejších DBMS.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster