docs: 添加服务器资源评估文档
- 新增服务器资源评估章节 - 记录当前服务器配置和资源占用 - 分析业务数据规模 - 评估小/中/大规模资源需求 - 说明 Rust 后端性能特性 - 分析瓶颈和优化建议 - 给出分阶段升级方案
This commit is contained in:
@@ -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。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 二、生产环境数据库迁移
|
## 二、生产环境数据库迁移
|
||||||
|
|
||||||
### 环境信息
|
### 环境信息
|
||||||
|
|||||||
Reference in New Issue
Block a user