Nel kernel di Linux 7.0 è stata trovata una regressione che riduce di due volte le prestazioni di PostgreSQL.

Un ingegnere di Amazon ha scoperto una regressione specifica del kernel Linux 7.0, il cui rilascio è previsto per il 13 aprile. La modifica delle impostazioni dello scheduler ha portato a un notevole calo della larghezza di banda e della reattività nell'utilizzo del database PostgreSQL sui sistemi basati su architettura ARM64. Con il kernel 7.0, i risultati del test pgbench "simple-update" sono diminuiti quasi della metà, passando da 98565 a 50751.

Il rallentamento è causato dal cambiamento della modalità di preemption nello scheduler da PREEMPT_NONE a PREEMPT_LAZY sulle architetture che supportano questa modalità, il che ha portato PostgreSQL in spazio utente a spendere il 55% del tempo della CPU per la chiamata a s_lock(). Per risolvere il problema, è stato proposto di ripristinare la modalità PREEMPT_NONE come predefinita e rimuovere il suo legame con l'impostazione ARCH_NO_PREEMPT.

Peter Zijlstra, autore delle modifiche che hanno causato il regressione, e maintainer dello scheduler e dei relativi sottosistemi del kernel, ha dichiarato che la correzione deve essere apportata al codice di PostgreSQL. Per risolvere il calo delle prestazioni, ha consigliato di utilizzare in PostgreSQL l'estensione "rseq slice" (Restartable Sequences) recentemente aggiunta al kernel per limitare la probabilità di sostituzione degli holder di blocco.

Non è chiaro quale decisione prenderà Linus Torvalds, il quale sostiene che il kernel non dovrebbe peggiorare le prestazioni e rompere la compatibilità con lo spazio utente. Da un lato, il kernel 7.0 è in fase finale di test prima del rilascio e il rollback delle impostazioni dello scheduler potrebbe portare ad altre regressioni, dall'altro i utenti potrebbero affrontare un calo delle prestazioni fino al 50% di uno dei sistemi di gestione database più popolari.

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster