TINY 模板
针对微型实例和资源受限环境优化的 PostgreSQL 配置模板
tiny.yml 是针对 微型实例 和资源受限环境优化的配置模板。适用于 1-3 核 CPU 的服务器,特点是最小化资源占用、保守的内存分配、禁用并行查询。
建议同时使用
node_tune=tiny进行操作系统级别的配套调优。
适用场景
TINY 模板适用于以下场景:
- 开发测试:本地开发环境、CI/CD 测试
- 低配虚拟机:1-2 核 CPU、1-4GB 内存的云主机
- 边缘计算:树莓派、嵌入式设备
- Demo 演示:快速体验 Pigsty 功能
- 个人项目:资源有限的个人博客、小型应用
资源限制:
- 1-3 核 CPU
- 1-8 GB 内存
- 有限的磁盘空间
- 可能与其他服务共享资源
使用方法
在集群定义中指定 pg_conf = tiny.yml:
YAML
单节点开发环境:
YAML
参数详解
连接管理
YAML
微型实例不需要处理大量并发连接,250 个连接足以应对开发测试场景。
内存配置
TINY 模板使用保守的内存分配策略:
| 参数 | 计算公式 | 说明 |
|---|---|---|
shared_buffers | 内存 × pg_shared_buffer_ratio | 默认比例 0.25 |
maintenance_work_mem | shared_buffers × 25% | 用于 VACUUM、CREATE INDEX |
work_mem | 16MB - 256MB | 更小的排序/哈希内存 |
effective_cache_size | 总内存 - shared_buffers | 可用于缓存的预估内存 |
work_mem 计算逻辑(与 OLTP 不同):
TEXT
更小的 work_mem 上限(256MB vs OLTP 的 1GB)避免内存溢出。
并行查询(完全禁用)
TINY 模板完全禁用了并行查询:
YAML
max_parallel_workers_per_gather: 0 确保查询不会启动并行工作进程,避免在低核心环境下争抢资源。
IO 配置(PG18)
YAML
固定的低 IO 工作线程数量,适合资源受限环境。
Vacuum 配置
YAML
减少 autovacuum 工作进程数量,降低后台资源占用。
查询优化
YAML
较低的 default_statistics_target 减少 pg_statistic 表的大小。
日志配置
YAML
TINY 模板不启用额外的连接日志,以减少日志量。
客户端超时
YAML
扩展配置
YAML
pg_stat_statements.max 从 10000 降到 2500,减少约 75% 的内存占用。
与 OLTP 模板的主要差异
| 参数 | TINY | OLTP | 差异原因 |
|---|---|---|---|
| max_connections | 250 | 500-1000 | 减少连接开销 |
| work_mem 上限 | 256MB | 1GB | 避免内存溢出 |
| max_worker_processes | max(cpu+12, 20) | max(cpu+16, 24) | 减少后台进程 |
| max_parallel_workers_per_gather | 0 | 20% cpu | 禁用并行查询 |
| autovacuum_max_workers | 2 | 3 | 减少后台负载 |
| default_statistics_target | 200 | 400 | 节省空间 |
| pg_stat_statements.max | 2500 | 10000 | 减少内存占用 |
| io_workers | 3 | 25% cpu | 固定低值 |
资源估算
以下是 TINY 模板在不同配置下的资源使用估算:
1 核 1GB 内存
YAML
PostgreSQL 进程内存占用:约 400-600MB
2 核 4GB 内存
YAML
PostgreSQL 进程内存占用:约 1.5-2GB
4 核 8GB 内存
此配置建议使用 OLTP 模板而非 TINY 模板:
YAML
性能调优建议
进一步减少资源
如果资源极度受限,可以考虑:
YAML
禁用不需要的扩展
YAML
关闭不需要的功能
YAML
使用外部连接池
即使在微型实例上,使用 PgBouncer 也能显著提高并发能力:
YAML
云平台推荐规格
AWS
- t3.micro:1 vCPU, 1GB RAM - 适合 TINY
- t3.small:2 vCPU, 2GB RAM - 适合 TINY
- t3.medium:2 vCPU, 4GB RAM - 可考虑 OLTP
阿里云
- ecs.t6-c1m1.small:1 vCPU, 1GB RAM - 适合 TINY
- ecs.t6-c1m2.small:1 vCPU, 2GB RAM - 适合 TINY
- ecs.t6-c1m4.small:1 vCPU, 4GB RAM - 适合 TINY
腾讯云
- SA2.SMALL1:1 vCPU, 1GB RAM - 适合 TINY
- SA2.SMALL2:1 vCPU, 2GB RAM - 适合 TINY
- SA2.SMALL4:1 vCPU, 4GB RAM - 适合 TINY
边缘设备部署
树莓派 4
YAML
Docker 容器
YAML
升级到 OLTP
当您的应用增长,需要更多资源时,可以轻松升级到 OLTP 模板:
- 升级虚拟机规格(4核 8GB 以上)
- 修改集群配置:
YAML
- 重新配置集群 或重新部署
参考资料
pg_conf:PostgreSQL 配置模板选择参数node_tune:操作系统调优模板,应与pg_conf配套- OLTP 模板:事务处理模板,4核8GB 以上可升级使用
- OLAP 模板:分析处理模板
- CRIT 模板:关键业务模板
- 单机部署:Pigsty 单机安装指南