PostgreSQL 开机启动后,默认情况下对系统资源(CPU、内存)的占用非常低,不会影响日常使用。只有在有大量数据库操作时才会明显增加资源消耗。
详细说明
✅ 方法一:推荐做法 —— 注册为 Windows 服务(开机自动启动)
命令如下:
cd "D:\environment\PostgreSQL\16\bin"
.\pg_ctl.exe register -N "CrowdfundX-PG" -D "D:\environment\PostgreSQL\16\data"
- -N 是服务名称,你可以自定义(比如 CrowdfundX-PG)
- -D 是你的数据目录路径
启动服务:
net start CrowdfundX-PG
设置开机自启:
在 PowerShell 中执行:
sc config CrowdfundX-PG start= auto
✅ 这样每次开机时,PostgreSQL 都会自动启动,无需手动干预。
✅ 方法二:每次手动启动(不推荐长期使用)
如果你不想注册为服务,每次重启电脑后可以运行以下命令手动启动 PostgreSQL:
cd "D:\environment\PostgreSQL\16\bin"
.\pg_ctl.exe -D "D:\environment\PostgreSQL\16\data" start
📌 替换为你自己的安装路径即可。
📁 推荐操作顺序(总结)
| | |
步骤 | 操作 | 推荐程度 |
✅ 注册为 Windows 服务 | 一次设置,永久生效 | ⭐⭐⭐⭐⭐ |
✅ 使用net start启动服务 | 快速启动 | ⭐⭐⭐⭐ |
✅ 手动启动数据库 | 仅用于调试 | ⭐⭐ |
🧮 PostgreSQL 默认资源占用情况(Windows 环境)
资源 | 占用情况 | 说明 |
内存(RAM) | 约 30–80 MB | 初始运行时非常轻量 |
CPU 使用率 | 几乎为 0% | 没有活动时几乎不使用 CPU |
磁盘读写 | 极低 | 无查询时几乎没有 I/O 操作 |
网络端口监听 | 5432 端口 | 仅用于监听连接请求 |
📋 实际测试数据(参考值)
如果你没有进行任何优化或修改配置文件(如你上传的 postgresql.conf
),默认配置下 PostgreSQL 的资源占用如下:
操作状态 | 内存占用 | CPU 使用率 | 备注 |
刚启动 | 30–50MB | 0% | 只监听端口,不做任何事 |
空闲状态 | 50–80MB | 0–1% | 等待连接请求 |
少量查询 | 100–200MB | 1–5% | 如网页应用访问数据库 |
高负载(大数据量/并发访问) | 300MB–数 GB | 5%–50%+ | 视数据量和并发而定 |
🛠️ 影响资源占用的关键配置项(来自你的配置文件)
以下是几个影响资源使用的配置项(摘自你提供的 postgresql.conf
文件):
配置项 | 默认值 | 是否影响资源 |
shared_buffers | 128MB | ⚠️ 中等影响(建议设为物理内存的 25%) |
work_mem | 4MB | ⚠️ 查询复杂时会临时增加内存使用 |
maintenance_work_mem | 64MB | ⚠️ 执行维护任务时会占用更多内存 |
max_connections | 100 | ⚠️ 连接越多,资源占用越高 |
checkpoint_segments ,checkpoint_timeout | 默认值 | ⚠️ 影响磁盘 I/O |
logging_collector = on | 已启用 | ✅ 日志功能开启,但不影响性能 |
autovacuum = on | 已启用 | ✅ 自动清理表碎片,资源占用极低 |
📈 如果你是生产环境部署呢?
如果你未来将 CrowdfundX 部署上线,面对成百上千用户访问:
资源 | 建议 |
内存 | 最少 2GB RAM(推荐 4GB 或以上) |
CPU | 至少 2 核心 |
硬盘 | SSD 更佳,HDD 也可接受 |
操作系统 | Windows Server / Ubuntu Linux 推荐用于生产环境 |
🧱 如何降低资源占用(适用于个人电脑)
✅ 方法一:限制最大连接数
编辑 postgresql.conf
:
max\_connections = 20
(原为 100,减少连接数可节省内存)
✅ 方法二:调低缓存大小
shared\_buffers = 64MB
work\_mem = 2MB
maintenance\_work\_mem = 32MB
适用于内存较小的机器(如 4GB RAM)
✅ 方法三:关闭不必要的功能(如日志收集)
logging\_collector = off
这样可以减少日志写入带来的磁盘 I/O。
🧰 查看当前资源占用方式(Windows)
你可以通过以下方式查看 PostgreSQL 的资源使用情况:
方法一:任务管理器
打开 任务管理器
查找进程名:
postgres.exe
postmaster.exe
查看:
方法二:使用 PowerShell 查看
Get-Process | Where-Object { $\_.Name -like "\*postgres\*" }
输出示例:
NPM(K) PM(M) WS(M) CPU(s) Id Name
----- ----- ----- ------ -- ----
279 10.34 15.12 0.00 1234 postgres
📌 总结:是否应该开机自启 PostgreSQL?
场景 | 是否推荐开机自启 |
✅ 本地开发环境 | ✅ 推荐 |
✅ 学习用途 | ✅ 推荐 |
✅ 个人小网站 | ✅ 推荐 |
❌ 内存小于 4GB 的旧电脑 | ❌ 不推荐(或调低配置) |
❌ 需要高性能的游戏/渲染设备 | ❌ 不推荐 |