这一节把前面所有零散的数拼成一个完整预算:带宽、存储、并发、服务器数量。 四笔账算完,「多少钱」就有答案了——而甲方第一个问题永远是「多少钱」。
前面每一节都在算一个局部:一路流多大、一小时录像多少、级联几层。 这一节把它们乘起来,变成一份能拿去报价的东西。 这是全书最实用的一节。
一、第一笔:汇聚带宽
三百路 4 Mbps 加起来是一点二三 Gbps。 但汇聚口不能按这个数配——因为不是所有路都同时有人看。 行业经验是按总路数的百分之二十到四十配汇聚,三百路折三成就是零点三七 Gbps。 「配少了会卡、配多了浪费」这个区间是试出来的,没有公式。 所以方案里通常写「按百分之三十设计,可扩展到五十」。 这一笔最容易被压价: 甲方会说「三千兆够了吧」,你要能答出「峰值是同时点播的人数决定的,不是路数决定的」。
二、第二笔:存储
一路一小时一点八四 GB,一路三十天一点三 TB。 三百路三十天就是三百九十多 TB。 但这只是「裸容量」,实际采购要除以两个系数:RAID 的零点八,和余量的零点九。 算下来五百五十 TB 左右。 「除以两个系数」这一步经常被漏,漏了就会「按裸容量买盘,装到八成满就报警」。 还有一个变量是「存多久」:三十天和九十天差三倍,而这三倍往往比服务器本身还贵。 所以先谈天数,再谈盘。
三、第三笔:回放并发
回放是本机取录像再转出去,和实时流抢同一块网卡。 所以「带宽够不够」要算两遍:实时一遍、回放一遍。 按百分之二十并发回放算,三百路就是六十路,六十路 4 Mbps 又是零点二五 Gbps。 这一笔最容易被漏,因为做方案时想的是「看实时」,而现场最常用的其实是「调录像」。 所以「两百兆带宽够不够」这个问题,答案是「够实时、不够回放」。 两笔账要分开算、再相加。
四、第四笔:服务器
单机按两百路转发放,三百路就要两台媒体服务器,再加一台信令、一台数据库、一台备用。 「单机两百路」这个数是经验值不是规格:纯转发能到更多,一转码就掉一个数量级。 所以报价前必须问清「要不要转码」——这一句话能差出一倍的服务器数量。 最后把四笔加起来,才是「多少钱」:带宽、存储、服务器,三块里存储往往最贵,也最容易被低估。
五、动手 Demo:三百路的一个项目,预算怎么算
按「三百路、4 Mbps、存三十天、两成回放」算四笔账:汇聚带宽、存储、回放带宽、服务器数量。
n, br, days = 300, 4096000, 30
print("汇聚 %.2f Gbps,折 30%% → %.2f"
% (n * br / 1e9, n * br * 0.3 / 1e9))
hour = br / 8 * 3600
tb = n * hour * 24 * days / 1e12
print("裸容量 %.1f TB,采购 %.1f TB" % (tb, tb / 0.8 / 0.9))
print("回放 60 路 %.2f Gbps" % (60 * br / 1e9))
print("媒体服务器", (n + 199) // 200, "台")
实跑输出:
--------------------------------------------------------------------
三百路的一个项目,预算怎么算
--------------------------------------------------------------------
**这一节把前面所有零散的数拼成一个完整预算**:**带宽、存储、并发、服务器数量。**
**这是本书最实用的一节**——**因为甲方第一个问题永远是「多少钱」。**
规模:300 路 1080p,码率 4 Mbps,存 30 天
**第一笔账:汇聚带宽**
300 路 × 4 Mbps = 1.23 Gbps
按「不是所有路都同时被看」折 30% → 0.37 Gbps
**「折 30%」这一步必须有**:**三百路不会同时有人看,但「汇聚口」要按峰值设计。**
**行业经验是「按总路数的 20% 到 40% 配汇聚」。**
**配少了会卡,配多了浪费,这个区间是试出来的。**
**第二笔账:存储**
一路一小时 1.84 GB
一路 30 天 1.3 TB
300 路 30 天 398.1 TB
**四百 TB 的裸容量,实际要买更多**:**做 RAID5 要除 0.8,留 10% 余量再除一次。**
实际采购 553.0 TB
**第三笔账:回放并发**
按 10% 并发回放 → 30 路 × 4 Mbps = 0.12 Gbps
按 20% 并发回放 → 60 路 × 4 Mbps = 0.25 Gbps
按 30% 并发回放 → 90 路 × 4 Mbps = 0.37 Gbps
**这一笔最容易被漏**:**回放是本机取录像再转出去,和实时流抢同一块网卡。**
**所以「两百兆带宽够不够」这个问题,答案是「够实时、不够回放」。**
**第四笔账:服务器**
单机按 200 路转发放,300 路要 2 台媒体服务器
加一台信令、一台数据库、一台备用 → 合计 5 台
**「单机 200 路」这个数是经验值不是规格**:**它取决于码率、是否转码、是否录像。**
**纯转发能到更多,一转码就掉一个数量级。**
**所以报价前必须问清「要不要转码」。**
四笔账分别是:一点二三 Gbps 汇聚、三百九十八 TB 裸容量、零点二五 Gbps 回放、两台媒体服务器。 「裸容量和采购容量差一百五十 TB」这一行最值钱:它是「报价会不会亏」的分界线。 按裸容量报价的项目,做完基本都要追加预算。 回放那一行是「最容易被漏的一笔」: 六十路回放又要零点二五 Gbps,而它和实时流抢的是同一块网卡。 所以正确的算法是「实时加回放、再乘安全系数」,不是「取两者的大值」。 服务器那一行只是粗算:「一台两百路」的前提是「纯转发、不转码」。 要转码的话,一台能带几十路就不错了。
30 秒实验
- 算一下:三百路 30 天裸容量多少 TB?(约 398)
- 想一下:为什么回放带宽要和实时带宽相加而不是取大值?
- 想一下:「要不要转码」这句话能差出多少服务器?
常见误区
- 以为「汇聚带宽按总路数配」。 要按同时点播的人数折,通常两三成。
- 以为「存储按裸容量买」。 要除 RAID 和余量两个系数。
- 以为「回放不占带宽」。 它和实时流抢同一块网卡。
自测三问(点开对答案)
1. 四笔账分别是什么? —— **汇聚带宽、存储、回放并发、服务器数量**。 2. 为什么存储要除以两个系数? —— **RAID 占掉一部分,还要留余量**,**按裸容量买会在八成满时报警。** 3. 「单机两百路」的前提是什么? —— **纯转发、不转码**;转码会掉一个数量级。最后一节:抓包到底是抓什么、怎么看。
- ☐ (本节完,下一节 11.04 GB/T 28181抓包流程分析)