我正在运行一个多Tennant网站,在那里我想减少每个请求创建PostgreSQL连接的开销。Django‘s Conn_MAX_AGE允许这样做,而代价是创建了许多通向PostgreSQL的开放空闲连接(8名工作人员*20个线程=160个连接)。每连接10 MB,这将消耗大量内存。
其主要目的是减少连接时间开销。因此,我提出以下问题:
Django 1.6设置:
DATABASES['default'] = {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
....
'PORT': '6432'
'OPTIONS': {'autocommit': True,},
'CONN_MAX_AGE': 300,
}
ATOMIC_REQUESTS = False # default
Postgres:
max_connections = 100
PgBouncer:
pool_mode = session # Can this be transaction?
max_client_conn = 400 # Should this match postgres max_connections?
default_pool_size = 20
reserve_pool_size = 5
相似问题