Доброго дня.
Сегодня получил такую ошибку в логах. До этого сервер крутился без рестарта где-то месяца три, база не то чтобы очень большая, но в некоторых таблицах сотни тысяч строк. Увеличил этот самый "max_locks_per_transaction", поднял "shared_buffers" и "work_mem", перезапустил postgres, проблема исчезла. Но навсегда ли?
Было:
shared_buffers = 128MB # min 128kB
work_mem = 4MB # min 64kB
temp_buffers = 8MB # min 800kB
max_locks_per_transaction = 64 # min 10
Стало:
shared_buffers = 256MB # min 128kB
work_mem = 16MB # min 64kB
temp_buffers = 32MB # min 800kB
max_locks_per_transaction = 1024 # min 10
Выполнение запроса к pg_locks вменяемой информации не дало (или я просто не умею читать между строк).
Собственно, вопрос следующий: куда копать, возможно, настроить доп. логирование? Я хочу точно понять, почему это появилось, дабы предотвратить дальнейшие рецидивы. Может, у меня кривые запросы, которые продуцируют дедлоки? Или просто увеличение объема бд требует увеличение объема выделенной памяти? Еще что-то?
Заранее спасибо.