172 похожих чатов

Привет. Друзья-коллеги, подскажите вот такой момент. С недавнего времени приложение

под нагрузочными тестами начало класть СУБД - плодятся idle, постепенно выедается память и в итоге oom-killer убивает постгресовый процесс. Если посмотреть, что там исполнялось, то видно, что все "лишние" idle в состоянии rollback. Причем разработчики поясняют, что rollback у них - норма и им они завершают все read-only тразнзакции 🤨 Типа изменений же не было, зачем коммит? Моя думать, что сие не true, но непонятно, как гуглу сформулировать запрос, чтобы понять. Спрашиваю у людей )

19 ответов

14 просмотров

Да нет разницы как завершать. Просто подключение надо закрывать

Alexander-Cheremukhin Автор вопроса
Konstantin Zaitsev
Да нет разницы как завершать. Просто подключение н...

ок. спасибо. С завершением тоже неочевидно. На стороне приложения выделенный пул соединений не растет. Выделено 50 коннектов, в него упирается и все. Дальше не плодится. Растет только на стороне субд. Может быть так, что в рамках этих 50-ти открываются постоянно новые на стороне субд и не закрываются?

Дело не в idle и не в rollback

Alexander Cheremukhin
ок. спасибо. С завершением тоже неочевидно. На сто...

Да же не знаю что на стороне СУБД может открывать, только если dblink какой на себя для автономных транзакций

> плодятся idle, постепенно выедается память В норме этого не должно быть. Какая версия PostgreSQL (SELECT version();)? И как и чем "выедается память"? > и в итоге oom-killer убивает постгресовый процесс может быть, эти "тесты" делают что-то нестандартное? Или, возможно, это обычное "убивай непричастных" поведение OOM killer? ;) > Моя думать, что сие не true Отчасти это так — но эта часть, в основном, теоретическая (состоит в том, что никаким данным, полученным из откаченной транзакции, "снаружи" нельзя доверять — но на практике этим PostgreSQL почти не пользуется). И к таким эффектам отношения не имеет.

Там пулер держит соединения.

Роман Жарков
Там пулер держит соединения.

И пусть держит. В норме это как минимум не имеет значения, а обычно только улучшает ситуацию.

Скорее всего у вас лимит коннекшинов, а автоматизаторы так хороши в коде что не знают как переиспользовать коннекшин и под каждый тестик создают новый Простое решение, постучать по головке автоматизаторам

Տ𝖊𝖗𝖌乇y
Скорее всего у вас лимит коннекшинов, а автоматиза...

Лимит не приводит к oom, но в целом как то так да

>Моя думать, что сие не true, Зря.

Alexander-Cheremukhin Автор вопроса
Տ𝖊𝖗𝖌乇y
Скорее всего у вас лимит коннекшинов, а автоматиза...

после танцев с бубном очевидность пропала окончательно ) Проблема только в debian(11,12). Аналогичные машины по дискам, цпу, памяти и настройкам постгреса дают разные результаты. В Centos7 держит нагрузку, в дебиан падает

Alexander Cheremukhin
после танцев с бубном очевидность пропала окончате...

Так что Вы сделали-то, конкретно (и с какими результатами)? И какая сейчас ситуация?

Alexander-Cheremukhin Автор вопроса
Alexander-Cheremukhin Автор вопроса
Yaroslav Schekin
Так что Вы сделали-то, конкретно (и с какими резул...

взяли 2 одинаковые ВМ, из стандартных настроек поправили только shared_buffers. На нагрузочном тесте центос держит нагрузку стабильно, на дебиан через пару минут начинает есть память и падает

Alexander Cheremukhin
взяли 2 одинаковые ВМ, из стандартных настроек поп...

Это неконкретное описание, извините. Что (какой процесс(ы)) начинает "есть память", как Вы это видите (каким инструментов), что в логах OS и PostgreSQL, когда "падает"? И да, Вы PostgreSQL-то обновили? ;)

Alexander Cheremukhin
угу. До 14.9. В логах:

Показывайте тексты текстом. И этого недостаточно, правда — всё остальное нужно.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта