В ядрото на Linux 7.0 е открита регресия, която два пъти намалява производителността на PostgreSQL

Инженер от Amazon откри регресия, специфична за ядрото Linux 7.0, чийто релиз е насрочен за 13 април. Промяната в настройките на планировчика на задачи е довела до значително намаление на пропускателната способност и реактивността при работа с бази данни PostgreSQL на системи с архитектура ARM64. При използване на ядрото 7.0 резултатите от теста pgbench "simple-update" са намалели почти наполовина — от 98565 до 50751.

Забавянето е причинено от изменението на режима на изпреварване (preemption) в планиращия по подразбиране от PREEMPT_NONE на PREEMPT_LAZY на архитектури, поддържащи такъв режим, в резултат на което в потребителското пространство PostgreSQL прекарва 55% от времето на CPU в извикване на s_lock(). За решението на проблема е предложено да се върне режима PREEMPT_NONE по подразбиране и да се премахне привързването му към настройката ARCH_NO_PREEMPT.

Питер Зийлстра, автор на промените, които са довели до регресията и поддържащ планиращия на задачите и свързаните с блокировките подсистеми на ядрото, заяви, че поправката трябва да бъде направена в кода на PostgreSQL. За да се разреши спадът в производителността, той препоръча да се използва охарактеризирането на "rseq slice" (Restartable Sequences), наскоро добавено в ядрото, за да се ограничи вероятността от изпреварване на притежателя на блокировката.

Все още не е ясно какво решение ще вземе Линус Торвалдс, който спазва правилото, че ядрото не трябва да влошава представянето и да нарушава съвместимостта с потребителското пространство. От една страна, ядрото 7.0 е в финалната фаза на тестване преди релиза и връщането на настройките на планиращия може да доведе до други регресии, а от друга страна, потребителите могат да се сблъскат с двукратно намаление на производителността на една от най-популярните бази данни.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster