mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 09:20:22 +08:00
chore: tune default postgres settings for 2c4g
This commit is contained in:
12
.env.example
12
.env.example
@@ -62,12 +62,12 @@ ADMIN_USERNAME=admin123456
|
|||||||
# MAX = CPU 核数 × 10(AI 网关偏 IO 等待,可激进些;纯 OLTP 用 × 4)
|
# MAX = CPU 核数 × 10(AI 网关偏 IO 等待,可激进些;纯 OLTP 用 × 4)
|
||||||
# MIN = MAX × 0.2(保留常驻连接应对突发流量,避免冷启动握手开销)
|
# MIN = MAX × 0.2(保留常驻连接应对突发流量,避免冷启动握手开销)
|
||||||
# 多实例部署时请按 实例数 × MAX 控制总和,PG 端 max_connections 至少为该总和 + 20 余量
|
# 多实例部署时请按 实例数 × 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_MAX_CONNECTIONS=20
|
||||||
# AETHER_GATEWAY_DATA_POSTGRES_STATEMENT_CACHE_CAPACITY=100
|
# AETHER_GATEWAY_DATA_POSTGRES_STATEMENT_CACHE_CAPACITY=100
|
||||||
# AETHER_GATEWAY_DATA_POSTGRES_ACQUIRE_TIMEOUT_MS=3000
|
# AETHER_GATEWAY_DATA_POSTGRES_ACQUIRE_TIMEOUT_MS=3000
|
||||||
|
|
||||||
# PostgreSQL 性能调优(默认值适合 2核2GB 的最小机器,按实际配置覆盖)
|
# PostgreSQL 性能调优(默认值适合 2核4GB 机器,按实际配置覆盖)
|
||||||
# 参考:shared_buffers ≈ 可用内存 25%,effective_cache_size ≈ 可用内存 50-75%
|
# 参考:shared_buffers ≈ 可用内存 25%,effective_cache_size ≈ 可用内存 50-75%
|
||||||
# work_mem 是每个连接每个排序操作的内存,不要设太大(并发数 × work_mem 是实际占用)
|
# work_mem 是每个连接每个排序操作的内存,不要设太大(并发数 × work_mem 是实际占用)
|
||||||
# | 系统内存 | shared_buffers | effective_cache_size | work_mem |
|
# | 系统内存 | shared_buffers | effective_cache_size | work_mem |
|
||||||
@@ -76,7 +76,7 @@ ADMIN_USERNAME=admin123456
|
|||||||
# | 8GB | 2GB | 6GB | 16MB |
|
# | 8GB | 2GB | 6GB | 16MB |
|
||||||
# | 16GB | 4GB | 12GB | 32MB |
|
# | 16GB | 4GB | 12GB | 32MB |
|
||||||
# | 32GB+ | 8GB | 24GB | 32MB |
|
# | 32GB+ | 8GB | 24GB | 32MB |
|
||||||
# POSTGRES_SHARED_BUFFERS=256MB
|
# POSTGRES_SHARED_BUFFERS=1GB
|
||||||
# POSTGRES_EFFECTIVE_CACHE_SIZE=768MB
|
# POSTGRES_EFFECTIVE_CACHE_SIZE=3GB
|
||||||
# POSTGRES_WORK_MEM=4MB
|
# POSTGRES_WORK_MEM=16MB
|
||||||
# POSTGRES_MAINTENANCE_WORK_MEM=64MB
|
# POSTGRES_MAINTENANCE_WORK_MEM=256MB
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ struct GatewayDataArgs {
|
|||||||
#[arg(
|
#[arg(
|
||||||
long,
|
long,
|
||||||
env = "AETHER_GATEWAY_DATA_POSTGRES_MIN_CONNECTIONS",
|
env = "AETHER_GATEWAY_DATA_POSTGRES_MIN_CONNECTIONS",
|
||||||
default_value_t = 1
|
default_value_t = 4
|
||||||
)]
|
)]
|
||||||
postgres_min_connections: u32,
|
postgres_min_connections: u32,
|
||||||
|
|
||||||
@@ -1670,7 +1670,7 @@ mod tests {
|
|||||||
encryption_key: None,
|
encryption_key: None,
|
||||||
redis_url: None,
|
redis_url: None,
|
||||||
redis_key_prefix: None,
|
redis_key_prefix: None,
|
||||||
postgres_min_connections: 1,
|
postgres_min_connections: 4,
|
||||||
postgres_max_connections: 20,
|
postgres_max_connections: 20,
|
||||||
postgres_acquire_timeout_ms: 10_000,
|
postgres_acquire_timeout_ms: 10_000,
|
||||||
postgres_idle_timeout_ms: 30_000,
|
postgres_idle_timeout_ms: 30_000,
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ impl Default for PostgresPoolConfig {
|
|||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
database_url: String::new(),
|
database_url: String::new(),
|
||||||
min_connections: 1,
|
min_connections: 4,
|
||||||
max_connections: 20,
|
max_connections: 20,
|
||||||
acquire_timeout_ms: 10_000,
|
acquire_timeout_ms: 10_000,
|
||||||
idle_timeout_ms: 30_000,
|
idle_timeout_ms: 30_000,
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ services:
|
|||||||
-c shared_preload_libraries=pg_stat_statements
|
-c shared_preload_libraries=pg_stat_statements
|
||||||
-c pg_stat_statements.track=all
|
-c pg_stat_statements.track=all
|
||||||
-c pg_stat_statements.max=10000
|
-c pg_stat_statements.max=10000
|
||||||
-c shared_buffers=${POSTGRES_SHARED_BUFFERS:-256MB}
|
-c shared_buffers=${POSTGRES_SHARED_BUFFERS:-1GB}
|
||||||
-c effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-768MB}
|
-c effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-3GB}
|
||||||
-c work_mem=${POSTGRES_WORK_MEM:-4MB}
|
-c work_mem=${POSTGRES_WORK_MEM:-16MB}
|
||||||
-c maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-64MB}
|
-c maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-256MB}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
|
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
|
|||||||
Reference in New Issue
Block a user