diff --git a/IMPROVEMENTS.md b/IMPROVEMENTS.md index 4af9d62..4cc7390 100644 --- a/IMPROVEMENTS.md +++ b/IMPROVEMENTS.md @@ -57,6 +57,99 @@ interface WeatherData { --- +## 服务器资源评估 + +### 当前服务器配置 + +| 项目 | 规格 | +|------|------| +| CPU | AMD EPYC 7K62 48-Core | +| 内存 | 2 GB | +| 磁盘 | 30 GB (已用 17GB) | + +### 当前资源占用 + +| 容器/服务 | 内存占用 | 说明 | +|----------|---------|------| +| PostgreSQL | 85.5 MB | 数据库 | +| rustweb (后端) | 844 KB | Rust 后端服务 | +| Gitea | 221.6 MB | 代码仓库 | +| Bitwarden | 251.1 MB | 密码管理 | +| OpenResty | 27.5 MB | 反向代理 | + +### 业务数据分析 + +| 指标 | 数值 | +|------|------| +| 用户数 | 2,358 | +| 天气数据 | 6,563 条 | +| 数据库大小 | 12 MB | +| 日活用户(预估) | ~100-500 | + +### 资源需求评估 + +#### 小规模(< 1000 用户) + +| 资源 | 推荐配置 | 说明 | +|------|---------|------| +| 内存 | 512 MB - 1 GB | Rust + PostgreSQL 足够 | +| CPU | 1 核 | 单核即可处理大部分请求 | +| 磁盘 | 10 GB | 数据库增长缓慢 | + +#### 中等规模(1000 - 10000 用户) + +| 资源 | 推荐配置 | 说明 | +|------|---------|------| +| 内存 | 1 - 2 GB | 需要缓存和连接池 | +| CPU | 2 - 4 核 | 并发处理 | +| 磁盘 | 20 GB | 数据库 + 日志 | + +#### 大规模(> 10000 用户) + +| 资源 | 推荐配置 | 说明 | +|------|---------|------| +| 内存 | 2 - 4 GB | 多连接 + 缓存 | +| CPU | 4 - 8 核 | 高并发 | +| 磁盘 | 50 GB+ | SSD 推荐 | + +### Rust 后端特性 + +| 特性 | 影响 | +|------|------| +| 内存效率 | 静态编译,无 GC,内存占用极低(实测 < 1MB) | +| CPU 效率 | 高并发处理能力,单核可处理数千 QPS | +| 启动速度 | 毫秒级启动 | +| 依赖 | 仅 28 行 Cargo.toml | + +### 瓶颈分析 + +| 组件 | 当前瓶颈 | 建议 | +|------|---------|------| +| PostgreSQL | 内存 85MB | 用户增长到 10k+ 可考虑 2GB | +| Rust 后端 | 无 | 目前的连接池配置足够 | +| 磁盘 I/O | HDD | 用户 10k+ 建议升级 SSD | +| 网络带宽 | - | 取决于日活和每次请求大小 | + +### 推荐配置 + +| 用户规模 | 升级方案 | +|---------|---------| +| < 5000 | 保持现状 | +| 5000-10000 | PostgreSQL 内存调整到 512MB | +| > 10000 | 升级到 4GB+ 服务器,SSD | + +### 优化建议 + +```toml +# PostgreSQL 连接池配置(当前使用默认) +# 建议根据用户量调整 +sqlx = { version = "0.8.6", default-pool-size = 10 } # 默认 5 +``` + +**结论**:当前 2GB 服务器对 Rust 后端来说资源非常充裕,预计可支撑 2-3 万用户。主要瓶颈可能在 PostgreSQL 的连接管理和磁盘 I/O。 + +--- + ## 二、生产环境数据库迁移 ### 环境信息