Skip to content

About

Server and storage sizing engine: scenario in, dual candidates (Xeon + domestic CPUs) with single-vs-dual-socket and memory bandwidth reasoning; storage takes the max across four constraints (IOPS, throughput, capacity, endurance); BOM auto-validated for cross-layer conflicts; 3-year TCO. 服务器与存储选型测算及技术文档引擎。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

服务器与存储选型测算及技术文档引擎

输入客户业务场景(并发量、TPS、数据量、IOPS、吞吐、时延、保留年限), 输出 CPU 与存储选型推导、配置清单(BOM)含跨层一致性校验、三年 TCO、 友商公开参数对标表、技术方案书与商用演示 PPT 骨架。

场景为自拟、选型为公开规格驱动的模型推算,非真实业务数据、非实测。

零第三方依赖,git clone 后直接跑。


1. 为什么做这个

服务器与存储的选型和算力卡选型是两件不同的事,而多数测算工具只做算力卡:

侧 瓶颈关注点 本项目模块
CPU 核数推导、内存带宽、单路 vs 双路拓扑、内存通道是否填满 cpu_sizing.py
存储 IOPS 与吞吐双约束、耐久度 TBW、NVMe/SATA/SAS 形态差异 storage_sizing.py

最容易出错的三个地方,本项目逐一处理:

常见错误 后果 本项目的处理
只算权重不算其他 带宽与容量都算错 核数按并发与 TPS 两条路径取大者,内存向上取整到通道倍数
以为双路性能翻倍 带宽只 ×1.6(内存控制器与 UPI 争用),多耗 10% 电 双路判定 + 折损系数显式写入推导链
存储只看 IOPS 或只看吞吐 选出的盘另一个维度跑不动 四个约束各自算盘数,取最大值

2. 覆盖哪些能力

能力 输入 输出 关键约束
CPU 选型 并发、TPS、时延、数据库核数 核数推导链 + 内存 + 单路/双路 + 带宽 至强与国产双候选;不过度配置
存储选型 数据量、IOPS、吞吐、时延、写入量 盘数 + RAID + 形态 + 耐久度需求 四约束取最大值;接口必须区分
BOM 校验 CPU + 存储测算结果 配置清单 + 跨层冲突清单 5 条规则,每条带修正建议
三年 TCO 配置 + 电价 + 利用率 分项成本 + 可压缩性标注 电费单列;硬件价缺失不凑总额
友商对标 公开规格 CPU/存储/整机三类参数并列 只列客观参数,不做优劣评价
文档装配 以上全部 方案书 / 演示 PPT / 客户 FAQ 演示骨架要求先问客户再报配置

3. 核心设计决策

3.1 双路不等于性能翻倍

单路 双路
核数 受单路上限约束 翻倍
内存带宽 单路值 仅 ×1.6
功耗 单路 ×2 × 1.1
成本 低 显著高

双路买不到双倍带宽。 很多客户默认双路,实际多花了钱却只拿到 1.6 倍带宽 和 2.1 倍功耗。这个判断直接写进推导链,是本项目最能体现专业度的一处。

3.2 存储四约束取最大值

盘数 = max(IOPS 所需, 吞吐所需, 容量所需, 耐久度所需)

实测(data_lake 场景,3000 TB / 20000 IOPS / 5000 MB/s):

约束 所需盘数
IOPS 8.30 块
吞吐 1.67 块
容量 870.00 块 ← 最紧
耐久度 未提供日写入量,跳过

只按 IOPS 算会得出 9 块盘 —— 容量差 90 倍。这就是「四个约束」的价值。

3.3 TBW 耐久度:固态特有、最容易漏的约束

概念 定义 常见误解
IOPS 每秒随机读操作数 与顺序读是两个独立瓶颈
吞吐 每秒顺序读 MB/s 容量大不等于吞吐高
TBW 盘寿命内可写入的总 TB 数 机械盘没有这个概念

能说清这三句话,就说明对固态存储的技术特点有了清晰认识。

3.4 硬件价格未查到就不凑总额

厂商不公开统一售价,渠道价随时变动。TCO 中硬件采购列为「未计入项」并 注明「合计不完整」—— 编价格算出的 TCO 在客户面前一问就穿帮。

4. 数据源与合规边界

数据 来源 可信度
至强规格(核数/频率/通道/UPI/TDP/带宽) Intel 官方产品规格页 official
国产 CPU 定位(海光/鲲鹏/飞腾/龙芯/兆芯/申威) 公开技术分析 + 厂商官网 secondary
存储介质参数(IOPS/吞吐/TBW/形态) 厂商公开规格书 secondary
存储指标口径 nvme-cli(概念层级)、fio(iops/bw/延迟三维度) official
行业毛利率背景 存储 / 服务器行业公开年报(公开披露口径) secondary
场景参数 自拟 —

明确不含:真实客户名称、合同金额、账号凭据、内部报价、厂商内部测试数据。

国产 CPU 的内存带宽、TDP 大量字段在公开资料中口径不一,表中留空即代表 未查到。这是真实的选型信息缺口,不是数据缺失 —— 遇到此类客户 应建议以厂商正式规格书为准。

5. 方法

data/scenarios/<场景>.json ─┐
data/specs/intel_xeon.csv  ├─> catalog.py ──> 目录(缺列即报错,空字段=None)
data/specs/domestic_cpu.csv│
data/specs/nvme.csv       ─┘
                                     │
   cpu_sizing.py ──── 并发/TPS 两条路径取大者 → 核数 → 内存 → 单路/双路 + 带宽折损
      │                (至强按最小满足型号挑选,不选最大核数)
      ├─ storage_sizing.py ┈ IOPS/吞吐/容量/耐久度 四约束 → max(盘数)
      ├─ bom_builder.py ──── 生成清单 + 5 条跨层一致性校验
      ├─ tco.py ─────────── 电费单列 + 每项标注可压缩性
      ├─ competitor_matrix.py ┈ CPU/存储/整机 参数并列(无优劣结论)
      │
      └─ doc_assembler.py ── 技术方案书 / 演示 PPT / 客户 FAQ

6. 快速开始

环境:Python 3.10+(验证于 3.12.8 / Windows)。无需安装任何运行时依赖。

# 跑全部场景
python -m src.cli --all

# 指定机型与存储参数
python -m src.cli --scenario data_lake --chassis "6U 液冷 4 卡" --interface NVMe --raid RAID6

# 只出友商对标表
python -m src.cli --competitor

# 跑测试
pip install pytest
python -m pytest -q

输出落在 output/<场景编号>/:

文件 内容
solution_proposal.md 技术方案书:需求 / CPU 选型 / 存储选型 / BOM / 三年 TCO / 边界声明
solution_ppt.md 商用演示 PPT 骨架 + 演示前必问的五个问题
bom_table.csv 配置清单,可直接贴进报价单
customer_qa.md 客户高频疑问与应答,含「哪些说法会丢订单」
result.json 全量结构化结果

7. 实测输出

$ python -m pytest -q
..............................................................           [100%]
62 passed in 1.05s

三个场景(利用率 0.6,电价 0.8 元/度,PUE 1.3):

场景 CPU 需求 推荐 CPU 拓扑 内存 带宽 存储 最紧约束 年电费
Web 业务 63 核 Xeon Platinum 8592+ 单路 392 GiB / 8 根 358.4 GB/s 1 块 吞吐 2820.58 元
AI 推理 1 核 Xeon E-2488 单路 8 GiB / 1 根 184.6 GB/s 16 块 容量 2082.64 元
视频数据湖 9 核 Xeon Silver 4510 单路 72 GiB / 2 根 184.6 GB/s 870 块 容量 39728.63 元

三个值得注意的结果:

  1. AI 推理场景只推 8 核的 Xeon E-2488,不是 64 核旗舰。 核数够用时选更大的型号就是过度配置 —— 采购价和三���电费都白花。 这是售前最值钱的技术判断。

  2. 数据湖场景的 870 块盘触发了 3 处校验问题,其中 1 处 P0:

    级别 规则 问题 修正建议
    P0 B-03 盘位 870 块超过 4U 背板 36 槽,且超单机盘位上限 60 应走分布式存储或加挂盘柜
    P1 B-02 内存通道 2 根未填满 8 通道,带宽跑不满 补足内存或重算带宽需求
    P2 B-05 盘数 同容量约束下盘数偏多 改用更大容量单盘,减少故障域

    这正是本项目存在的意义 —— 这类错误在投标阶段发现是改图纸,交付后才发现是退货。

  3. 三个场景全是单路。 因为核数需求都没超过单路上限。 工具不会为了显得"高端"而推荐双路 —— 需求多少就配多少。

8. 已知局限

# 局限 影响 补齐方式
1 核数换算系数为默认值 每核并发 2500 / 每核 TPS 200 须按实际压测校准 压测数据替换 assumptions.md A-01
2 时延未校验 目录无单盘延迟字段 用 fio 实测(randread_4k, iodepth=32)
3 硬件价格未查到 TCO 合计不完整 取得正式报价
4 电价与 PUE 为默认值 电费数字有偏差 按项目所在地替换
5 国产 CPU 内存带宽普遍未查到 无法做带宽对比 向厂商索取规格书
6 RAID 未做重建时间与故障域分析 缺可靠性维度 补充 RAID 重建窗口计算
7 不做网络产品选型 本项目聚焦 CPU 与存储两侧 组网拓扑只做 CPU 侧 UPI/内存互连
8 无实测 全部为模型推算 POC 阶段补齐

第 1、2、5 条是这个项目最需要盯的地方 —— 选型对不对,取决于假设准不准。 这个工具的价值不在于给一个配置数字,而在于说清这个数字在什么假设下成立、 什么假设下会失效:默认参数集中登记在 data/assumptions.md, 每份输出都带 assumption_refs,任何一条都可以单独替换后重算。

9. 声明

本仓库不包含任何真实客户名称、合同金额、账号凭据、内部报价或客户业务数据。 原始场景参数为自拟。芯片与存储参数取自公开资料,标注了来源与可信等级。 本项目未做实测,输出不构成任何产品性能承诺或采购依据。 友商条目仅为公开信息整理,不含价格策略与未公开信息,不构成优劣评价。 本项目与文中出现的任何厂商无隶属或合作关系,厂商名称与产品名称仅用于资料来源标注。

About

Server and storage sizing engine: scenario in, dual candidates (Xeon + domestic CPUs) with single-vs-dual-socket and memory bandwidth reasoning; storage takes the max across four constraints (IOPS, throughput, capacity, endurance); BOM auto-validated for cross-layer conflicts; 3-year TCO. 服务器与存储选型测算及技术文档引擎。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages