The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В ядре Linux 7.0 выявили регрессию, в два раза снижающую производительность PostgreSQL

04.04.2026 18:36 (MSK)

Инженер из компании 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.

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

Пока не ясно какое решение примет Линус Торвальдс, который придерживается правила, что ядро не должно ухудшать работу и ломать совместимость с пространством пользователя. С одной стороны ядро 7.0 находится на финальной стадии тестирования перед релизом и откат настроек планировщика может привести к другим регрессиям, а с другой стороны пользователи могут столкнуться с двухкратным снижением производительности одной из самых популярных СУБД.

  1. Главная ссылка к новости (https://www.phoronix.com/news/...)
  2. OpenNews: Анализ исправления ошибок в ядре Linux - в среднем ошибки замечают через 2 года
  3. OpenNews: Ошибка в ядре Linux 5.19.12, потенциально способная повредить экраны на ноутбуках с GPU Intel
  4. OpenNews: Кейс Кук из Google призвал модернизировать процесс работы над ошибками в ядре Linux
  5. OpenNews: Ошибка в ядре Linux 5.12-rc1, приводящая к потере данных в ФС
  6. OpenNews: В ядре Linux выявлены ошибки, приводящие к зависанию процессов и повреждению разделов EXT4
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65143-kernel
Ключевые слова: kernel, postgresql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (76) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 18:52, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >снизились почти в два раза

    Будут исправлять, что ещё делать.
    С другой стороны "enterprise" и так не побежит обновляться на свежие версии.

     
     
  • 2.6, Аноним (6), 19:01, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Они дали совет из разряда "купите более мощный комп".
     

  • 1.7, Аноним (7), 19:02, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И вот такое вот мы несём в Ubuntu 26.04 LTS?
     
     
  • 2.11, Аноним (1), 19:08, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Будут ждать корректирующего выпуска 26.04.1
     
     
  • 3.12, Аноним (1), 19:10, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    https://opennet.ru/64240-ubuntu
     
  • 2.46, Sem (??), 00:32, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Справедливости ради, много ли у вас серверов на архитектуре ARM64?
     
     
  • 3.47, Аноним (6), 00:37, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Как бы даже в top500 есть на 7-ом месте.
     
     
  • 4.50, Фняк (?), 03:09, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Из разряда дать абсолютно верный, но бесполезный ответ. Кто в здравом уме на числодробилках из топ500 постгрес будет запускать?
     
  • 3.58, Anoni (?), 08:13, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В Амазоне большинство постгресов крутится на Гравитоне...
     
  • 3.77, Аноним (-), 11:27, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Справедливости ради, много ли у вас серверов на архитектуре ARM64?

    У вас может и немного. А у гуглов-амазонов-тенсентов и кого там еще - их уже очень даже.

     
  • 3.82, Анонисссм (?), 12:33, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >много ли у вас серверов на архитектуре ARM64?

    на самом деле Ampere Altra Max M128-30 окуенные.
    встречаются и у провайдеров VDS

     

  • 1.8, Аноним (8), 19:03, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Будет причина сервера обновить. Стандартный подход.
     
  • 1.10, Tron is Whistling (?), 19:08, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Так ядро не ухудшило работу и совместимость не сломало, надо править излишне заточенные на поведение ядра блокировки собственно.
     
     
  • 2.13, Аноним (-), 19:24, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Stable API is nonsence, короче.
     
     
  • 3.67, Tron is Whistling (?), 08:55, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А там где-то API изменилось, или я что-то пропустил?
     
     
  • 4.75, Аноним (-), 10:43, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В широком смысле. От ядра ожидается предсказуемое поведение вообще-то.
     
     
  • 5.83, Tron is Whistling (?), 13:02, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так оно и предсказуемое: всё работает.
    А вот то, что затюнили на конкретное микроповедение (тайминг), да ещё и конкретной платформы - ну это уже извиняйте, не проблемы ядра.
     
     
  • 6.97, Аноним (-), 22:41, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В два раза — это, извините, не «микро». Отдельно доставляет то, что ведь не какая-то поделка васяна с гитхаба отвалилась.
     

  • 1.14, Аноним (14), 19:25, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    В новости так расписано как PREEMPT_LAZY плохо влияет на постгрю, но при этом совсем не сказано для чего его добавляли и на что оно влияет позитивно.

    The introduction of PREEMPT_LAZY was for multiple reasons:
    - PREEMPT_RT suffered from over-scheduling, hurting performance compared to !PREEMPT_RT.
    - the introduction of (more) features that rely on preemption; like folio_zero_user() which can do large memset() without preemption checks.
    (Xen already had a horrible hack to deal with long running hypercalls)
    - the endless and uncontrolled sprinkling of cond_resched()

    Поэтому "решать" проблему через "вернуть по умолчанию режим PREEMPT_NONE" это фуфло. Ядро используется не только чтобы какие-то постри крутить. И они не должны быть приколачивать работу к дефолту.

     
     
  • 2.52, Аноним (52), 03:29, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А почему не PREEMPT_DYNAMIC?
     
  • 2.74, Аноним (74), 09:54, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    PREEMPT и всякие RT это абсурд на многоядерных системах.
     
     
  • 3.78, Аноним (-), 11:29, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > PREEMPT и всякие RT это абсурд на многоядерных системах.

    Вообще-то PREEMPT_RT начиная с ядра 6.1 примерно дает именно RTOS'овые гарантии. Т.е что например на интервале X задача получит не менее Y процессорного времении.

    И ядро прошло довольно длинный путь чтобы достичь этого состояния. Потому что это не столько про 1 ядро и несколько, сколько про шедулинг, начинку ядра, blocking и проч.

     
  • 3.90, Аноним (90), 18:20, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Звукорежиссёры не согласны.
     

  • 1.15, FSA (ok), 19:43, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличные новости! Выявили! Значит исправят! Тем более даже у меня, на Fedora 44 до сих пор ядро 6.19. А другие дистрибутивы вообще более древние версии ядер используют. Так что когда они перейдут на версию 7.0 уже всё будет исправлено.
    Вспоминается, как глючил переключатель раскладки в Windows. Он глючил в Windows 2000, XP... и даже в Vista.
     
     
  • 2.16, Аноним (1), 19:48, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >до сих пор ядро 6.19

    А какие ещё были ?
    https://www.kernel.org

     
     
  • 3.17, Аноним (17), 20:10, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >А какие ещё были ?

    Мог бы и сходить по своей то ссылке
    mainline: 7.0-rc6 2026-03-29

     
     
  • 4.18, Аноним (1), 20:19, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну ? Это же "RC" (release candidate).
    "Linux 7.0 релиз которого ожидается 13 апреля".
     
     
  • 5.87, Аноним (17), 15:08, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну ? Это же "RC" (release candidate).

    Ну, терминалогические споры нас конечно заведут в метафизический тупик, но только сабжевых регрессий в ядрах 6.19 не будет.

     
  • 2.35, dannyD (?), 22:30, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>до сих пор ядро 6.19

    как бэ не совсем понятно - вы жалуетесь или хвастаетесь?

     
  • 2.56, Аноним (56), 08:10, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В старых нету закладок.
     
  • 2.64, Zloy (ok), 08:33, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ничего никогда не глючило) Вообще выбор ядра зависит от требований, я перешел на линукс, когда увидел изменения в 6.19 которые мне были нужны. Не думаю, что стоит сразу перескакивать на новое ядро, обычно там много багов, которые обычные пользователи скорее всего не заметят.
     
  • 2.80, ShpurloS (?), 11:53, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так переключатель и в Windows 11 продолжает глючить.
     
  • 2.81, zionist (ok), 12:08, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > даже у меня, на Fedora 44 до сих пор ядро 6.19

    Fedora 44 ещё не вышла, у тебя максимум бета. А вот у меня на Fedora 43 ядро тоже 6.19 и со временем будет 7.0 ибо ядра тут обновляются всегда.

     

  • 1.19, eugener (ok), 20:21, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Так это на arm, расходимся. Главное чтобы десктоп работал, а что там с БД — проблема сисадминов.
     
     
  • 2.21, Аноним (1), 20:30, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Так это на arm

    https://newsroom.ibm.com/2026-04-02-ibm-announces-strategic-collaboration-with

     
  • 2.34, dannyD (?), 22:28, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • –9 +/
    >>Так это на arm, расходимся. Главное чтобы десктоп работал....

    Вы до сих пор на x86 ? Вам еще не приташнивает? Мне уже давно, еще до эплсиликон...

     
     
  • 3.94, Anonim (??), 20:02, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Судя по минусам - местные эксперты ничего старше XP не видели ;)
     

  • 1.20, Аноним (20), 20:26, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Perf profiling shows 55% of CPU time is consumed spinning in PostgreSQL's userspace spinlock (s_lock()) under PREEMPT_LAZY

    если в постгресе запилили спинлок в юзерспейсе (на что намекает этот коммент), то они по умолчанию не правы. Не надо так делать.

     
     
  • 2.43, Аноним (43), 23:59, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты прав. В юзерспейсе вообще не надо использовать ничего из того, что предоставляет ядро.
     

  • 1.22, Аноним324 (ok), 20:31, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    > Пока не ясно какое решение примет Линус Торвальдс, который придерживается правила, что ядро не должно ухудшать работу и ломать совместимость с пространством пользователя.

    Так он каждый релиз ядра её ухудшает, и вообще стейб апи из нонсенс.

     
     
  • 2.23, Аноним (23), 20:36, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Линус Торвальдс, который придерживается правила, что ядро не должно ухудшать работу и ломать совместимость с пространством пользователя.

    Опять читаем новость не тем местом...

     
  • 2.28, Аноним (28), 21:42, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Тут API не меняется. Вы, очевидно, не в курсе, что такое API.
     
     
  • 3.38, Аноним (6), 23:12, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё как меняется:

    > автор изменений, из-за которых возникла регрессия ... заявил, что исправление нужно вносить в код PostgreSQL. ... посоветовал задействовать ... недавно добавленное в ядро расширение "rseq slice"

     
     
  • 4.42, Аноним (28), 23:53, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Даже слов не нахожу. Существующее API не изменилось. Как было так и осталось. Поменялись внутренние алгоритмы и добавилось новое API. Очевидно, вы никаком боком к разработке отношения не имеете.
     
  • 2.51, Фняк (?), 03:12, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты бы хоть открыл тот файлик, на который ссылаешься. Там про внутриядерный апи
     
     
  • 3.59, Аноним (56), 08:16, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А ты что древние тексты читать умеешь
     

  • 1.24, Аноним (24), 20:36, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А потом наёдут грязные хаки в PostgreSQL, обходящие планировщик. 146%
     
  • 1.25, User (??), 21:12, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Этот Питер он вот откуда? Тут серьёзные человеки из платиновых спонсоров сказали, что "регрессия", а всякие там с @infraded.org говорят что "и так сойдет" - сейчас ГЛАВНЫЙ разберется как следует и "с присущим ему своеобразием" примет ПРАВИЛЬНОЕ решение.
     
  • 1.26, Аноним (26), 21:25, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно выпустить и так, но добавится гемор строителям дистров, т.к. при установке PostgeSQL им придется капсом писать для пользователей, что для корректной работы нужно другая версия ядра с PREEMPT_NONE или самим включать PREEMPT_NONE по дефолту. Да и вообще может выясниться, что на PREEMPT_LAZY можно забить.
     
     
  • 2.60, Аноним (56), 08:19, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому Майки финансируют Генту. Они лучше знают что лучше.
     
  • 2.68, Tron is Whistling (?), 08:57, 05/04/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.79, Аноним (-), 11:31, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > нужно другая версия ядра с PREEMPT_NONE или самим включать PREEMPT_NONE

    Блин, MSDOS поставьте - никто не будет вам preempt делать :)

     

  • 1.36, дворник (?), 22:48, 04/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –12 +/
    Я так понимаю из-за этой шляпы сейчас "колбасит" (платежи не проходят, банкоматы наличку не дают) все банки, они-же с оракела переползли на постгри, и с интеля на арм.

    сбербанка и втбанка, если читаете эту новость, напишите, что это не так.

     
     
  • 2.37, Аноним (1), 22:54, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Погугли, узнаешь почему.
     
  • 2.39, ПростойФермерДжон (?), 23:15, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не не так,  сочетании с телеметрией нового Firefox, и profile-sync-daemon 7, пропускная способность осталась такой же, вот только данные дико сливают, не то чтобы мне жалко, но жалко траффика, и ого, я смотрел iotop, в новом firefox, за минуту наверное метров 500 скачивает).
    А да, точно, и все это на замечательном ядре 7.
     
     
  • 3.40, Аноним (40), 23:42, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А что там за телеметрия?В релизе 149 ничего такого указано не было.
     
     
  • 4.54, ПростойФермерДжон (?), 06:17, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Карочи щас не помню, какой то процесс, именно телеметрия.
    В iotop видно.
    Пробовал в firefox tarball.
    Те Firefox + Кеш + Какой то процесс именно телеметрия, отдельный, он непрерывно пишет на диск.
    Тоесть даже если отключить кеш, то этот процесс еще больше пишет чем кеш. А ну да, версия 151.
    Если оставить браузер, не листать интернет, то пишет непрерывно на диск, это уничтожает ресусрс ssd, ну и вообще номральн ли это, все равно что непрерывно копировать файлы в простое.
     
     
  • 5.62, Аноним (62), 08:29, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В последнюю версию ещё АИ добавили
     
  • 5.85, Аноним (85), 13:47, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так а в чём проблема user_pref browser newtabpage activity-stream feeds teleme... большой текст свёрнут, показать
     
  • 3.41, Аноним (1), 23:43, 04/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что ?
     
  • 2.45, Аноним (45), 00:13, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да все так ты прав. Эта хрень снизила в два раза перформанс всех тг прокси. Особенно 2.0beta которая из официального докера вообще не запускается.
     
     
  • 3.65, Аноним (62), 08:34, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На Марс лети. Там нету блокировок интернета.
     
  • 2.53, Аноним (53), 04:18, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    и ютуб, ютую поломала еще... до того как вышла
     

  • 1.69, Tron is Whistling (?), 09:00, 05/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Правильное название такое: в спинлоках постгрыза выявлена проблема, приводящая к снижению производительности на ядре 7 и арм.
     
     
  • 2.71, Аноним (71), 09:06, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ядро внезапно стало честно выдавать ресурсы, нужные для выполнения бесконечного цикла)
     

  • 1.70, Аноним (71), 09:04, 05/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    в линуксе настолько всратый IPC, что накостылить детсадовский спинлок лучше, чем пользоваться мутексами, семафорами и т.п.?
     
     
  • 2.86, Аноним (86), 14:04, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это, скорее, говорит о качестве кода в постгре
     

  • 1.72, Аноним (71), 09:09, 05/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для устранения падения производительности он посоветовал задействовать в PostgreSQL недавно добавленное в ядро расширение "rseq slice" (Restartable Sequences) для ограничения вероятности вытеснения держателя блокировки.

    Пока дилетанты разбираются с костылями, профессионалы вовсю орудуют подпорками для костылей.

     
  • 1.73, Аноним (74), 09:50, 05/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Питер Зейлстра (Peter Zijlstra), автор изменений, из-за которых возникла регрессия, и мэйнтейнер планировщика задач и связанных с блокировками подсистем ядра, заявил, что исправление нужно вносить в код PostgreSQL.

    Удалять PREEMPT_NONE идиотизм, а совет переделать постгре показывает уровень разраба.
    Надеюсь Линус примет его стандартное в таким случаях решение.

     
     
  • 2.84, Tron is Whistling (?), 13:03, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если проблемы только у одной поделки - переделывать придётся её, такие дела.
     
     
  • 3.92, Аноним (6), 19:39, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > проблемы только у одной поделки

    в винде таких регрессий нету.

     

  • 1.91, Аноним (91), 18:57, 05/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    да там того спинлока 200 строк кода всего. поправят за чашкой чая.
     
  • 1.93, уп (?), 19:47, 05/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Учёный вновь изнасиловал журналиста.

    https://lore.kernel.org/lkml/20260405144425.36044-1-kondo.mitsumasa@gmail

    Проблема в конкретном коде Постгри для конкретной архитектуры.

     
     
  • 2.95, zionist (ok), 20:07, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Цитата от туда же:

    So I agree that the patch to retain PREEMPT_NONE is the right approach.

     
     
  • 3.96, уп (?), 20:25, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не апстрим следует даунстриму, а даунстрим следует апстриму.
     
     
  • 4.98, zionist (ok), 23:23, 05/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Причём тут это? Mitsumasa говорит, что правильным решением, по его мнению, является патч ядра, возвращающий PREEMPT_NONE по дефолту.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру