как бороться? насколько я понимаю это значительно замендляет работу
4971 postgres 1.2 postgres: 13/main: postgres user ::1(58774) idle
4970 postgres 1.2 postgres: 13/main: postgres user ::1(58772) idle
4966 postgres 1.2 postgres: 13/main: postgres user ::1(58754) idle
4965 postgres 1.2 postgres: 13/main: postgres user ::1(58752) idle
4758 postgres 1.2 postgres: 13/main: postgres user ::1(58326) idle
4736 postgres 1.2 postgres: 13/main: postgres user ::1(58252) idle
4735 postgres 1.2 postgres: 13/main: postgres user ::1(58248) idle
4734 postgres 1.2 postgres: 13/main: postgres user ::1(58246) idle
4733 postgres 1.2 postgres: 13/main: postgres user ::1(58244) idle
4731 postgres 1.2 postgres: 13/main: postgres user ::1(58240) idle
4969 postgres 1.1 postgres: 13/main: postgres user ::1(58770) idle
4968 postgres 1.1 postgres: 13/main: postgres user ::1(58768) idle
4967 postgres 1.1 postgres: 13/main: postgres user ::1(58756) idle
4740 postgres 1.1 postgres: 13/main: postgres user ::1(58262) idle
4739 postgres 1.1 postgres: 13/main: postgres user ::1(58260) idle
4738 postgres 1.1 postgres: 13/main: postgres user ::1(58256) idle
4737 postgres 1.1 postgres: 13/main: postgres user ::1(58254) idle
4732 postgres 1.1 postgres: 13/main: postgres user ::1(58242) idle
4730 postgres 1.1 postgres: 13/main: postgres user ::1(58238) idle
> очень много висящих соединений к базе, почему это происходит? ваши приложения открывают соединения к БД чтобы делать запросы > как бороться? зачем? с чего вы взяли что это плохо? > насколько я понимаю это значительно замендляет работу не всегда, это зависит от ресурсов сервера и нагрузки которую создают приложения
вот idle in transaction это плохо... долгое нахождение транзакций в таком состоянии (минуты и более), замедляет работу постгреса. но это больше проблема приложения, лечить надо там
можно как то натсроить его чтобы обрывал такие соединения? или это лучше делать со стороны приложения?
спасибо) будем разбиратсья)
в идеале нужно разбираться с приложением, чтобы оно не оставляло транзакции надолго. но есть и крутилка - idle_in_transaction_session_timeout - позволяет постгресу самостоятельно завершать такие транзакции
тогда скорее всего сломается приложение если будем неожиданно для него закрывать транзу
Ещё больной кейс - когда не читают из мастера :)
это что значит?)
Ну при чтении из мастера бакендом тоже происходят микрооптимизации, отсутсвие этого чтения тоже постепенно приводит к деградации
блин я даже не знаю что аткое мастер)
мм, я думаю об этом надо думать когда более-менее серьезная нагрузка, на маленьких tps оно наверно врядли ощутимо
Обсуждают сегодня