这是我第一次使用PostgreSQL 8.4.2和Django(过去我一直使用MySQL或sqlite3).我应该使用哪个值DATABASE_ENGINE的settings.py,postgresql_psycopg2还是postgresql?他们如何彼此不同?
我正在运行一个多租户网站,我希望减少每个请求创建PostgreSQL连接的开销.Django的CONN_MAX_AGE允许这样做,代价是创建了许多与PostgreSQL的开放空闲连接(8个工作者*20个线程= 160个连接).每个连接10MB,这会消耗大量内存.
主要目的是减少连接时间开销.因此我的问题:
Django 1.6设置:
DATABASES['default'] = {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
....
'PORT': '6432'
'OPTIONS': {'autocommit': True,},
'CONN_MAX_AGE': 300,
}
ATOMIC_REQUESTS = False # default
Run Code Online (Sandbox Code Playgroud)
Postgres的:
max_connections = 100
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)