En regression har upptäckts i Linux-kärnan 7.0, vilket halverar prestandan för PostgreSQL.

En ingenjör från Amazon har upptäckt en regression som är specifik för Linux-kärnan 7.0, vars släpp är planerat till den 13 april. Ändringar i schemaläggarens inställningar har lett till en kraftig minskning av genomströmningen och responsiviteten vid användning av databashanteraren PostgreSQL på system med ARM64-arkitektur. Vid användning av kärnan 7.0 sjönk prestandan vid pgbench-testet "simple-update" nästan med hälften — från 98565 till 50751.

Nedgången beror på en ändring av avpreparingsläget (preemption) i den standardiserade schemaläggaren från PREEMPT_NONE till PREEMPT_LAZY på arkitekturer som stödjer detta läge, vilket gör att PostgreSQL i användarutrymmet spenderar 55% av CPU-tiden på att anropa s_lock(). För att lösa problemet har det föreslagits att återgå till PREEMPT_NONE som standardläge och ta bort dess koppling till ARCH_NO_PREEMPT-inställningen.

Peter Zijlstra, skaparen av ändringarna som orsakat regressionen och underhållare av schemaläggaren och relaterade låsundersystem i kärnan, har uttalat att korrigeringen måste göras i PostgreSQL-koden. För att åtgärda prestandafallet har han rekommenderat att använda den nyligen tillagda kärnfunktionen "rseq slice" (Restartable Sequences) i PostgreSQL för att begränsa chansen för avpreparering av låshållaren.

Det är fortfarande oklart vilket beslut Linus Torvalds kommer att ta, då han följer regeln att kärnan inte ska försämra prestandan eller bryta kompatibiliteten med användarutrymmet. Å ena sidan är kärnan 7.0 i slutfasen av testning innan släpp, och en återställning av schemaläggarens inställningar kan leda till andra regressioner, å andra sidan kan användare uppleva en halvering av prestandan hos en av de mest populära databashanterarna.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster