Skip to Content
Menu
This question has been flagged
2 Replies
7913 Views

--> I got this error in the odoo server:

QWebException: FATAL: sorry, too many clients already

--> And postgres server prints the following error: 

CST FATAL: sorry, too many clients already.

Anybody here knows what is the solution??


Thanks

Avatar
Discard
Best Answer

1. PostgreSQL has configuration parameter: max_connections - probably you need increase this value (but this is the server performance dependency).

2. Odoo has other similar config parameter  db_maxconn (the postgresql parameter is important).

Avatar
Discard
Author

yes, you right, but I need the formula to calculate the maxium connections that I need... I got this processor: cpu description: CPU product: Intel(R) Xeon(R) CPU E3-1240 v3 @ 3.40GHz vendor: Intel Corp. physical id: 400 bus info: cpu@0 version: Intel(R) Xeon(R) CPU E3-1240 v3 @ 3.40GHz slot: Proc 1 size: 1666MHz capacity: 1666MHz width: 64 bits clock: 100MHz with 8GB RAM... so I need to know the formula to calculate the maxium connections. Thanks

My suggestion, use pgtune: http://pgtune.projects.pgfoundry.org/

Dago Gallo, the formula is here:

(1 + workers + max_cron_threads) * db_maxconn < max_connections

source: http://odoo-development.readthedocs.io/en/latest/admin/db_maxconn.html

Best Answer

I have faced this issue until I switch to pgbouncer as a connection pooling and configured odoo to connect to postgres using pgbouncer port.Try it

Avatar
Discard
Author

What is pgbouncer?... Can you tell me more about it please?

From the docs: https://pgbouncer.github.io/usage.html#quick-start

pgbouncer is a PostgreSQL connection pooler. Any target application can be connected to pgbouncer as if it were a PostgreSQL server, and pgbouncer will create a connection to the actual server, or it will reuse one of its existing connections.

The aim of pgbouncer is to lower the performance impact of opening new connections to PostgreSQL.

In order not to compromise transaction semantics for connection pooling, pgbouncer supports several types of pooling when rotating connections:

Session pooling
Most polite method. When client connects, a server connection will be assigned to it for the whole duration the client stays connected. When the client disconnects, the server connection will be put back into the pool. This is the default method.

Transaction pooling
A server connection is assigned to client only during a transaction. When PgBouncer notices that transaction is over, the server connection will be put back into the pool. Statement pooling

Most aggressive method. The server connection will be put back into pool immediately after a query completes. Multi-statement transactions are disallowed in this mode as they would break.

Related Posts Replies Views Activity
1
Sep 15
9645
2
Jul 24
548
2
Dec 19
4854
3
Jul 16
4418
1
Oct 15
2978