EasyGBS 走的是另一条路:一个进程全包。 好处是装起来省事,坏处是「扩不了」。 真正的天花板不是 CPU,是网卡——两百路就把千兆网卡吃满。
上一章看的是拆开的 LiveGBS,这一节看单进程的 EasyGBS。 两者功能差不多,差别在「能扩到多大」。 看懂这个差别,选型时就不会被「功能列表」误导。
一、单进程的好处和代价
好处很实在:一条命令起来、一份配置、一个日志。 现场部署半小时能搞定,不需要懂「CMS 和 SMS 怎么连」。 代价也很实在:媒体、信令、前端全在一个进程里,一处崩全断。 而且「扩容」这件事只剩一条路:换更强的机器。 所以「几百路以内」这个定位不是贬低,是事实——大部分区县级项目、连锁门店项目,也就几百路。 选型时最该问的一句是「三年后会有多少路」,不是「现在多少路」。 现在三百路、三年后一千路的项目,一开始就该选能拆的。
二、天花板在网卡上
算一下就清楚:两百路 4 Mbps 是零点八 Gbps,千兆网卡只剩两成余量。 八百路就吃满万兆。 所以「几百路以内」这个说法,翻译过来就是「万兆网卡以内」。 CPU 反而不是瓶颈——纯转发很省,转码才吃 CPU。 这也解释了一个常见现象: 「明明 CPU 才用三成,为什么卡」——因为瓶颈在网卡,看 CPU 看不出来。 所以容量规划的第一个指标是「出口带宽」,不是「CPU 核数」。
三、首次启动生成什么
单进程软件首次运行会生成四样东西:可执行文件、配置文件、数据目录、数据库文件。 「装没装上」的判断依据就是这四样齐不齐,不是看屏幕有没有输出。 其中数据目录最容易被忽略,也最容易出事: 它默认在程序旁边,一旦重装程序,录像可能被一起删掉。 所以部署规范的第一条永远是「数据目录挪到独立盘」。 这一条不是洁癖,是教训——重装程序把数据一起清掉,这种事每个运维都遇到过一次以上。
四、动手 Demo:单进程和一拆二,运维差在哪
把两种形态逐项对比,再算「两百路到底占多少带宽」,看天花板在哪。
n = 200
print("%d 路 4 Mbps = %.2f Gbps" % (n, n * 4.096 / 1000))
print("千兆网卡余量 %.0f%%" % (100 - n * 4.096 / 10))
print("八百路 = %.1f Gbps,要万兆" % (800 * 4.096 / 1000))
实跑输出:
--------------------------------------------------------------------
单进程和一拆二,运维差在哪
--------------------------------------------------------------------
**EasyGBS 走的是另一条路:一个进程全包。**
**好处是装起来省事,坏处是「扩不了」。**
**这一节把两种形态摆在一起比**,**重点不是谁好,是「什么时候该选谁」。**
对比项 LiveGBS(拆开) EasyGBS(单进程)
----------------------------------------------------------------------
**进程数** **两个(CMS 加 SMS)** **一个**
**部署复杂度** **要分别配、分别起** **一条命令**
**扩容方式** **SMS 可横向加** **只能换更强的机器**
**故障影响** **媒体崩了信令还在** **全断**
**适用路数** **上千路** **几百路以内**
**第三行是分水岭**:**单进程平台的性能上限就是「单机最强配置」。**
**到了天花板之后没有别的办法,只能换机器。**
**而拆开的平台可以加机器。**
**但「几百路以内」这个说法要算一下才知道边界在哪**:
200 路 4 Mbps = 0.82 Gbps
单机万兆网卡能扛,千兆网卡就满了
**所以真正的天花板不是 CPU,是网卡**:**两百路就把千兆网卡吃满,八百路就吃满万兆。**
**「几百路以内」这个说法,指的就是「万兆网卡以内」。**
**首次启动会生成一批文件**,**这也是排查「装没装上」的依据**:
文件 作用
-----------------------------------------------
**可执行文件** **主程序,单文件**
**配置文件** **端口、路径、数据库**
**数据目录** **录像、日志、临时文件**
**数据库文件** **内置库时是一个文件**
**第三行最容易出事**:**数据目录默认在程序旁边,一旦重装程序,录像可能被一起删掉。**
**所以部署规范里第一条就是「数据目录挪到独立盘」。**
**这一条不是洁癖,是教训**:**重装程序把数据一起清掉,这种事每个运维都遇到过一次以上。**
两百路零点八二 Gbps, 千兆网卡只剩一成八的余量——这还是在「所有流都从同一块网卡出去」的前提下。 所以「单机能带多少路」这个数,可以按网卡速率倒推: 千兆约两百路、万兆约两千路,留一半余量就是一半。 这个算法比问厂商「能带多少路」靠谱。 那张对比表里第三、四、五行要连起来看:扩容方式受限 → 故障影响变大 → 适用路数变小。 这三行其实是一件事的三个面。 最后那句「重装把数据清掉」是真实教训, 它不属于技术问题,属于部署规范问题——而规范问题造成的损失,往往比技术 bug 大。
30 秒实验
- 算一下:两百路 4 Mbps 占多少 Gbps?(0.82)
- 想一下:单进程平台的天花板在哪?(网卡)
- 想一下:为什么数据目录要挪到独立盘?(重装会清掉)
常见误区
- 以为「单进程就是落后」。 几百路以内的项目,单进程反而更省事。
- 以为「卡就是 CPU 不够」。 先看网卡,纯转发很省 CPU。
- 以为「默认安装路径没问题」。 数据目录和程序同盘,重装会一起清掉。
自测三问(点开对答案)
1. 单进程平台的两个缺点是什么? —— **一处崩全断、只能换更强的机器来扩容**。 2. 单进程平台的容量天花板在哪? —— **网卡**。千兆约两百路,万兆约两千路,都要留余量。 3. 首次启动要确认哪四样东西? —— **可执行文件、配置文件、数据目录、数据库文件**。下一节讲批量接入:三百台设备导入,失败的都是哪几种。
- ☐ (本节完,下一节 11.03.02 设备接入)