コンテンツへスキップ
メニュー
この質問にフラグが付けられました
8 返信
15264 ビュー

Odoo does not close idle postgresql processes by default. Is there a way to close idle postgres processes (without restarting odoo service)?

アバター
破棄
最善の回答

You could do it using pg_bouncer as connection pooling in front of your postgresql database and config odoo to connect to it. Pg_bouncer could close the idle transactions for you by setting a timeout for the idle connections that it's managed. Also it could increase your connections number for Odoo and others postgresql consumers by a really big number difference in compared with the real postgresql connections

アバター
破棄
著作者

Thanks, I'm currently testing it. Has pgbouncer any performance impact on Odoo?

normally an improvement of Odoo performance because of the pg_bouncer connection pooling. I use transaction timeout to close the idle queries. The only thing could be when you are using pg_bouncer to pool all your database and you try to create a new database through pg_bouncer, that is not working completely in my setup

著作者

It seems to work, after around 10 minutes the idle processes are gone.

著作者

I can create a new database without problems.

Could you share your pg_bouncer config that allow you to create and proxy new databases?. It have been a while since I mount it and maybe I just dont config something needed for that

著作者 最善の回答

[databases]

* = port=5432

[pgbouncer]

logfile = /var/log/postgresql/pgbouncer.log

pidfile = /var/log/postgresql/pgbouncer.pid

listen_addr = *

listen_port = 6432

unix_socket_dir = /var/run/postgresql

auth_type = trust

auth_file = /etc/pgbouncer/userlist.txt

admin_users = postgres

stats_users = postgres

pool_mode = transaction

server_reset_query = DISCARD ALL;

server_check_query = select 1

server_check_delay = 10

max_client_conn = 1000

default_pool_size = 20

log_connections = 1

log_disconnections = 1

アバター
破棄
関連投稿 返信 ビュー 活動
3
2月 24
5471
0
2月 21
1951
2
10月 23
2089
1
6月 23
5642
1
1月 23
2569