I Linux-kernen 7.0 er der opdaget en regression, der halverer ydeevnen af PostgreSQL

En ingeniør fra Amazon har opdaget en regression, der er specifik for Linux-kernen 7.0, hvis udgivelse forventes den 13. april. Ændringer i opgaveplanlæggerens indstillinger har ført til en betydelig reduktion i båndbredde og responsivitet ved brug af PostgreSQL på systemer med ARM64-arkitektur. Ved brug af kernen 7.0 faldt præstationsmålingerne under pgbench-testen 'simple-update' næsten halvt — fra 98565 til 50751.

Forsinkelsen skyldes ændringen af preemption-tilstand i standardplanlæggeren fra PREEMPT_NONE til PREEMPT_LAZY på arkitekturer, der understøtter denne tilstand. Det har medført, at PostgreSQL i brugerens rum bruger 55% af CPU-tiden på at kalde s_lock(). For at løse problemet foreslås det at vende tilbage til standardindstillingen PREEMPT_NONE og fjerne dets tilknytning til indstillingen ARCH_NO_PREEMPT.

Peter Zijlstra, forfatteren til ændringerne, der forårsagede regressionen, og maintainer af planlægningssystemet og de relaterede låsesystemer i kernen, har sagt, at løsningen skal implementeres i PostgreSQL-koden. For at afhjælpe faldet i ydeevne anbefalede han at aktivere det nyligt tilføjede 'rseq slice'-udvidelse (Restartable Sequences) i PostgreSQL for at begrænse sandsynligheden for at dreje låseholderen ud.

Det er endnu ikke klart, hvilken løsning Linus Torvalds vil vælge. Han følger reglen om, at kernen ikke må forringe ydeevnen eller bryde kompatibiliteten med brugerens rum. På den ene side er kernen 7.0 i den afsluttende testfase før udgivelsen, og et tilbageslag i planlæggerens indstillinger kan føre til andre regressioner, mens brugerne på den anden side kan opleve en tofoldig reduktion i ydeevnen for en af de mest populære databaser.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster