chore: tune default postgres settings for 2c4g

This commit is contained in:
fawney19
2026-05-21 01:36:05 +08:00
parent e7f8b259ac
commit b84e4a96e2
4 changed files with 13 additions and 13 deletions

View File

@@ -62,12 +62,12 @@ ADMIN_USERNAME=admin123456
# MAX = CPU 核数 × 10AI 网关偏 IO 等待,可激进些;纯 OLTP 用 × 4
# MIN = MAX × 0.2(保留常驻连接应对突发流量,避免冷启动握手开销)
# 多实例部署时请按 实例数 × MAX 控制总和PG 端 max_connections 至少为该总和 + 20 余量
# AETHER_GATEWAY_DATA_POSTGRES_MIN_CONNECTIONS=1
# AETHER_GATEWAY_DATA_POSTGRES_MIN_CONNECTIONS=4
# AETHER_GATEWAY_DATA_POSTGRES_MAX_CONNECTIONS=20
# AETHER_GATEWAY_DATA_POSTGRES_STATEMENT_CACHE_CAPACITY=100
# AETHER_GATEWAY_DATA_POSTGRES_ACQUIRE_TIMEOUT_MS=3000
# PostgreSQL 性能调优(默认值适合 2核2GB 的最小机器,按实际配置覆盖)
# PostgreSQL 性能调优(默认值适合 2核4GB 机器,按实际配置覆盖)
# 参考shared_buffers ≈ 可用内存 25%effective_cache_size ≈ 可用内存 50-75%
# work_mem 是每个连接每个排序操作的内存,不要设太大(并发数 × work_mem 是实际占用)
# | 系统内存 | shared_buffers | effective_cache_size | work_mem |
@@ -76,7 +76,7 @@ ADMIN_USERNAME=admin123456
# | 8GB | 2GB | 6GB | 16MB |
# | 16GB | 4GB | 12GB | 32MB |
# | 32GB+ | 8GB | 24GB | 32MB |
# POSTGRES_SHARED_BUFFERS=256MB
# POSTGRES_EFFECTIVE_CACHE_SIZE=768MB
# POSTGRES_WORK_MEM=4MB
# POSTGRES_MAINTENANCE_WORK_MEM=64MB
# POSTGRES_SHARED_BUFFERS=1GB
# POSTGRES_EFFECTIVE_CACHE_SIZE=3GB
# POSTGRES_WORK_MEM=16MB
# POSTGRES_MAINTENANCE_WORK_MEM=256MB

View File

@@ -254,7 +254,7 @@ struct GatewayDataArgs {
#[arg(
long,
env = "AETHER_GATEWAY_DATA_POSTGRES_MIN_CONNECTIONS",
default_value_t = 1
default_value_t = 4
)]
postgres_min_connections: u32,
@@ -1670,7 +1670,7 @@ mod tests {
encryption_key: None,
redis_url: None,
redis_key_prefix: None,
postgres_min_connections: 1,
postgres_min_connections: 4,
postgres_max_connections: 20,
postgres_acquire_timeout_ms: 10_000,
postgres_idle_timeout_ms: 30_000,

View File

@@ -20,7 +20,7 @@ impl Default for PostgresPoolConfig {
fn default() -> Self {
Self {
database_url: String::new(),
min_connections: 1,
min_connections: 4,
max_connections: 20,
acquire_timeout_ms: 10_000,
idle_timeout_ms: 30_000,

View File

@@ -22,10 +22,10 @@ services:
-c shared_preload_libraries=pg_stat_statements
-c pg_stat_statements.track=all
-c pg_stat_statements.max=10000
-c shared_buffers=${POSTGRES_SHARED_BUFFERS:-256MB}
-c effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-768MB}
-c work_mem=${POSTGRES_WORK_MEM:-4MB}
-c maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-64MB}
-c shared_buffers=${POSTGRES_SHARED_BUFFERS:-1GB}
-c effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-3GB}
-c work_mem=${POSTGRES_WORK_MEM:-16MB}
-c maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-256MB}
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 5s