mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 01:10:23 +08:00
chore(postgres): 支持通过环境变量配置 PG 性能参数
This commit is contained in:
16
.env.example
16
.env.example
@@ -49,7 +49,7 @@ ENCRYPTION_KEY=change-this-to-another-secure-random-string
|
|||||||
# 启动自举管理员(仅在当前库里还没有活动管理员时生效)
|
# 启动自举管理员(仅在当前库里还没有活动管理员时生效)
|
||||||
# 手动部署时取消注释并设置;install.sh 首次生成配置时会提示输入。
|
# 手动部署时取消注释并设置;install.sh 首次生成配置时会提示输入。
|
||||||
ADMIN_EMAIL=admin@example.com
|
ADMIN_EMAIL=admin@example.com
|
||||||
ADMIN_USERNAME=admin
|
ADMIN_USERNAME=admin123456
|
||||||
# ADMIN_PASSWORD=
|
# ADMIN_PASSWORD=
|
||||||
|
|
||||||
# ==================== 可选配置(有默认值) ====================
|
# ==================== 可选配置(有默认值) ====================
|
||||||
@@ -66,3 +66,17 @@ ADMIN_USERNAME=admin
|
|||||||
# 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 的最小机器,按实际配置覆盖)
|
||||||
|
# 参考:shared_buffers ≈ 可用内存 25%,effective_cache_size ≈ 可用内存 50-75%
|
||||||
|
# work_mem 是每个连接每个排序操作的内存,不要设太大(并发数 × work_mem 是实际占用)
|
||||||
|
# | 系统内存 | shared_buffers | effective_cache_size | work_mem |
|
||||||
|
# | 2GB | 256MB | 768MB | 4MB |
|
||||||
|
# | 4GB | 1GB | 3GB | 16MB |
|
||||||
|
# | 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
|
||||||
|
|||||||
@@ -14,7 +14,18 @@ services:
|
|||||||
- postgres_data:/var/lib/postgresql/data
|
- postgres_data:/var/lib/postgresql/data
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:${DB_PORT:-5432}:5432"
|
- "127.0.0.1:${DB_PORT:-5432}:5432"
|
||||||
command: postgres -c idle_in_transaction_session_timeout=30000 -c tcp_keepalives_idle=30 -c tcp_keepalives_interval=10 -c shared_preload_libraries=pg_stat_statements -c pg_stat_statements.track=all
|
command: >
|
||||||
|
postgres
|
||||||
|
-c idle_in_transaction_session_timeout=30000
|
||||||
|
-c tcp_keepalives_idle=30
|
||||||
|
-c tcp_keepalives_interval=10
|
||||||
|
-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}
|
||||||
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