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

Доброе утро, товарищи. Мучаюсь с миграцией с PostgreSQL 9.2 на

PostgreSQL 9.6. Проблема следующая: после миграции через pg_dump все идет хорошо где-то 30-40 минут (т.е. количество соединений стабильное, количество транзакций в секунду нормальное и т.д.), после чего у некоторых соединений появляется статус LWLockNamed: WALWriteLock (смотрел через PGAdmin). Со временем таких соединений становится все больше и в какой-то момент их количество моментально подскакивает до 700 (максимальное количество соединений, которое может забрать пул на стороне веб-сервиса, который работает с БД). htop показывает бешеную среднюю нагрузку (20 18 18) и огромное количество процессов с соединениями, рядом с которыми виден статуc UPDATE waiting. Все это безумие само по себе не прекращается: соединения почему-то не закрываются и остаются висеть. Как думаете, в чем может быть проблема? Куда копать? Конфигурации обоих серверов стандартные, изменены только всякие shared_buffer, work_mem и max_connections. Если кому интересно, прикрепляю gist на оба файла конфигов.
- 9.2: https://gist.github.com/dtsey/d3c3fa59adbe330f7bbb31a4e29f9d57
- 9.6 https://gist.github.com/dtsey/f9b1c4307ecf95027cc3ddfe6305e27a
P.S. если даже предположить, что проблема на стороне пула соединений в веб-сервере, то все равно остается загадкой, почему 9.2 может жить и работать, а 9.6 -- нет.

2 ответов

5 просмотров

Какая версия ядра линукса?

Быстро-быстро выгребаемое максимальное количество соединений наводит на мысль о синхронных репликах, от которых нет ответа. Но причем тут LWLockNamed: WALWriteLock и UPDATE waiting - я не скажу. 9.6 с криво настроенной синхронной репликацией не гонял.

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

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

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Есть предложения, как подобное можно упростить?
Hemul GM
12
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
just use free version ?? pycharm has a free version
Fan / Ac
9
Карта сайта