系统里除了"谁先开口""算得多重",还有一个决定怎么配机器的变量——客户端的负载形状:平时几乎为零、瞬间挤爆的是爆发系,长期平稳满载的是持久系,两者的设计取向完全相反。而要把这些讨论清楚,得先把系统画成一张图,这就是模型化——它是全书的工作台。
- 爆发系与持久系(是爆发系还是持久系)
- 模型化(将系统模型化进行整理)
- 系统(基本的系统结构)
1. 客户端的两种脾气
同样是客户端,负载的"形状"完全不同:
| 爆发系(burst) | 持久系(persistent) | |
|---|---|---|
| 负载形状 | 平时几乎为零,某个瞬间挤爆 | 长期平稳、一直满载 |
| 典型场景 | 秒杀、抢票、开学选课、年会抽奖 | 监控录像、AI 训练、批处理、7×24 服务 |
| 峰值 ÷ 平均 | 几十倍到上百倍 | 约等于 1 |
| 设计取向 | 弹性:临时加机器顶上,峰值过了就撤 | 稳定:配置一次到位,长期扛住 |
同一个系统里的客户端,也可能两种脾气并存:白天员工在用(温和持久),晚上批量结算(爆发)。
2. 为什么要分这两类
因为设计取向完全相反,配错了就是两边都花钱:
- 爆发系的系统怕"峰值扛不住",所以弹性扩缩容是它的王牌——云计算的按量付费就是为它量身定做的;
- 持久系的系统怕"跑着跑着出问题",所以更看重散热、电费、长期稳定性——机器买来就一直满负荷跑,稳定压到一切。
还有一个更实在的理由:它决定了钱花在哪儿。
- 爆发系:能开能关的机器越多越好(按量付费),峰值过了立刻释放;
- 持久系:一次买断、按满载选型更划算(按量付费跑一年可能比买断还贵)。
判断一个新系统该怎么配,第一步就是问:它是爆发系还是持久系?——这个问题不回答,后面所有选型都是猜。
3. 模型化:把系统画成图再讨论
模型化 = 用简化的方框和箭头代表真实系统。
关键不是画得漂亮,而是把不重要的细节先扔掉:一堆服务器只画成一个方框、几百台客户端只画成一行箭头——因为此刻要看的是"谁连谁",而不是"哪台机器放在哪个机柜"。
网络 2.1 讲过"画一朵云代表整个互联网"——那是同一个道理:抽象是为了抓住当前要讨论的那一层,把别的先盖上。
4. 模型化至少要能回答三个问题
不是画完就算,画完的图要能拿去"算":
| 问题 | 用来干什么 |
|---|---|
| 谁连谁 | 说清结构与依赖,一眼看到影响面 |
| 哪里最慢 | 找瓶颈——往往不是最贵的那台 |
| 要几台够 | 算容量:按峰值算要几台、按平均算要几台 |
这三个问题的答案,直接变成决策:要不要加机器、要不要上云、这笔钱花在哪。
收一笔旧账:网络 2.6 把网络图分成物理图与逻辑图——正是模型化在网络层面的落地。本课往后每一章(存储、备份、冗余、云),基本都在往这张图上添零件。
5. 收束:系统的基本结构
把本章全部内容串成一条线:
客户端(PC / 设备) → 网络 → 服务器(司令塔)
发起请求 处理并返回
↑ |
└────────── 响应 ──────────────┘
四个变量,各管一件事:
| 变量 | 决定什么 |
|---|---|
| 谁先发起(被动 / 主动) | 流量的方向 |
| 算得多重(普通 / 高性能) | 机器的规模 |
| 客户端脾气(爆发 / 持久) | 容量的配法 |
| 把它们画成图(模型化) | 讨论的共同语言 |
这就是"系统"最基本的骨架,也是本章标题"作为司令塔的三种形态"的完整展开。
被动式(你问它答)· 主动式(它自己找你)· 高性能(算得特别重)。 前两种讲方向,第三种讲分量——它们是三个可以同时存在的维度,不是三选一。
6. 动手时间(Demo03):看负载的形状,画自己的系统图
第一步:看你这台机器的负载长什么样。
# 1. 连续采 10 秒 CPU 使用率,看曲线是"尖峰"还是"高原"
Get-Counter '\Processor(_Total)\% Processor Time' -SampleInterval 1 -MaxSamples 10 |
Select-Object -ExpandProperty CounterSamples |
Select-Object CookedValue
# 2. 谁在长期吃 CPU(持久系的嫌疑犯)
Get-Process | Sort-Object CPU -Descending | Select-Object -First 6 Name, CPU, WS
# 3. 本机开机多久了(7×24 的雏形)
(Get-CimInstance Win32_OperatingSystem).LastBootUpTime
第二步:给自己的一个真实场景画模型图。
拿你熟悉的一件事练手(比如"公司同事查看项目图纸"):
- 画三类方框:客户端(谁在用、用什么设备)、网络(局域网?外网?)、服务器(提供什么服务);
- 连箭头,标出请求方向(被动还是主动);
- 在每条线上写一个数:并发大概多少 / 峰值大概多少;
- 最后回答三个问题:谁连谁、哪里最可能最慢、高峰要几台够。
你这个场景是爆发系还是持久系?——比如"上班时间大家看图纸"是温和持久型,"周一早上全公司同时开图纸"就带爆发性质。这个问题一回答,容量怎么配基本就有了方向。
7. 30 秒实验
- 实验 1(负载形状):打开任务管理器看 CPU 曲线——平时几个小尖点,你压一个大文件时瞬间冲顶,这是爆发系的形状;而监控录像那种 7×24 的负载,曲线会像一条不动的粗线,那是持久系。
- 实验 2(峰值 vs 平均):回忆一次抢票或选课——平时这个网站有多少人访问?开抢那一秒呢?两个数字差多少倍,那就是它的"峰值倍数"。
- 实验 3(模型化三问):随手挑一个你天天用的系统(公司考勤、外卖 App),用 30 秒回答:谁连谁?哪里最慢?要几台够?
8. 常见误区
- 以为模型化就是画个好看的框图——它的目的是算容量、找瓶颈、做决策。画完回答不了这三个问题的图,等于没画。
- 以为"平均负载不高"就不用担心——爆发系恰恰是平均很低、峰值致命。按平均配机器,秒杀那天必崩。
- 把爆发系和持久系当成"系统类型"——它是负载的特征。同一个系统白天持久、晚上爆发,两种脾气并存。
- 以为持久系只要"机器好"就够了——散热、电费、机房承重、维护窗口都是它的成本项,"一直满跑"对硬件的消耗和爆发系完全不是一个量级。
- 把"系统"等同于一台服务器——系统 = 客户端 + 网络 + 服务器(还要加上数据和用系统的人),少一环就不成系统。
9. 折叠自测题
区别在负载形状:爆发系平时几乎为零、瞬间挤爆(秒杀、抢票、选课);持久系长期平稳满载(监控录像、AI 训练)。前者要弹性,后者要稳定。
用简化的方框 + 箭头代表真实系统。至少要能回答:谁连谁(结构)、哪里最慢(瓶颈)、要几台够(容量)——并据此做决策。
被动式与主动式回答"谁先开口"(方向),高性能形态回答"算得多重"(分量)。不是三选一——它们是三个可以同时存在的维度,比如一个 AI 服务对外是被动式,内部是高性能,还会主动推送告警。
谁先发起 → 流量方向;算得多重 → 机器规模;客户端脾气(爆发/持久)→ 容量配法;模型化 → 讨论的共同语言。
10. 下一步学什么
- ☑ 第二章 服务器的硬件部分 ✅ —— 与PC的三重差异(可靠性、性能、操作系统)、服务器的规格与形态(冗余、外形、标准、档次)、服务器的位置与外部世界(网络、部署、云、大型机)
相关笔记
- 系统与司令塔(系统与服务器、使用形态、被动式运用形态) —— 三件套的定义篇(本篇的收束就是它的展开)
- 主动式与高性能形态(含客户端设备) —— 三种形态的另两种,以及客户端的完整分类
- 服务器的规格与形态(冗余、外形、标准、档次) —— 本篇的爆发系 / 持久系,在那里变成具体的规格选择
- 网络 2.1 不同网络的规模差别很大(云图标) —— "抽象不是偷懒":模型化的同款思路
- 网络 2.6 明确网络的结构(网络结构图) —— 物理图与逻辑图:模型化在网络层的落地
- 网络 1.7 运行和管理服务器(服务器、云服务、内部部署) —— 上一门课从"住哪儿"看服务器
- 网络 1.8 云服务的分类(SaaS、PaaS、IaaS) —— 服务器之上还盖着一层云