网络建好了,订单"嗖嗖"地跑。可老王又愁了——午高峰时App卡得像幻灯片,骑手抱怨定位延迟,客服被投诉电话淹没。老王拍桌子:"是不是该换服务器了?加机器!加钱!"
小明拦住他:"老板,先别砸钱。你开餐厅也不知道哪桌翻台慢、哪道菜拖后腿吧?得先量再算再设计再评估——这就是系统性能评价。"他掏出一张纸画了个餐厅评分表——"吞吐量就是翻台率,响应时间就是上菜速度,可用性就是营业时长。"
🖥️ 5.1.1 计算机性能指标:11道体检项目
评价一台计算机就像给厨师体检——指标一大把:
| 指标 | 意思 | 餐厅类比 |
|---|---|---|
| 主频(时钟频率) | CPU工作节拍,越高越快。但现在还得看核数 | 厨师切菜手速 |
| 高速缓存 | L1/L2/L3,回写结构支持读写、写通只支持读,越大越好 | 厨师手边的备料台 |
| 运算速度 | MIPS(定点)/MFLOPS(浮点) | 每分钟能炒几盘菜 |
| 运算精度 | 字长,8/16/32/64位,越长越精 | 刀工精细度 |
| 内存容量 | 越大可存数据和程序越多,减少磁盘交换 | 后厨冷库大小 |
| 存取周期 | 连续两次读/写最短时间,越短越好 | 从冷库取一次料多快 |
| PDR数据处理速率 | PDR=L/R,度量CPU和主存速度,不含缓存 | 后厨综合出菜节奏 |
| 响应时间 | 事件从发生到结束的时间 | 下单到上菜的等待 |
| RASIS特性 | 可靠性/可用性/可维护性/完整性/安全性五合一 | 餐厅综合信誉 |
| 平均故障响应时间(TAT) | 出故障到确认修复前的时间,越短越好 | 停水停电后多久恢复营业 |
| 兼容性 | 与其他系统并存互通的能力 | 能不能用别家的餐盒和收银机 |
RASIS里可靠性用MTBF/MTTF衡量(平均故障间隔/无故障时间),可维护性用MTTR(平均修复时间)衡量。
🌐 5.1.2 网络性能指标:五类评分卡
网络是个由多种设备组成的集合体,性能指标分五类:
| 类别 | 关注啥 | 餐厅类比 |
|---|---|---|
| 设备级 | 路由器吞吐量、延迟、丢包率、转发速度 | 单个传菜员跑多快 |
| 网络级 | 可达性、传输速率、信道利用率、带宽利用率、延迟抖动 | 整个传菜动线通不通畅 |
| 应用级 | QoS、对语音/视频的支持程度 | 不同菜品的服务标准 |
| 用户级 | 可靠性、可用性(长周期运行系统最重要) | 食客长期口碑 |
| 吞吐量 | 无帧丢失时设备能接受的最大速率,帮找瓶颈 | 翻台率——高峰期能扛多少桌 |
⚙️ 5.1.3-5.1.5 操作系统/数据库/Web服务器指标
操作系统五指标:可靠性、吞吐量(单位时间处理信息量)、响应时间(提交作业到出结果,即周转时间)、资源利用率(设备实际使用时间占比)、可移植性。
数据库管理系统(DBMS)四功能:数据库描述(定义逻辑结构)、数据库管理(配置/存取/完整性/安全性)、查询和操纵(检索和修改)、维护(导入导出/结构维护/恢复/性能监测)。性能指标包括:数据库大小、单文件大小、表数量、单表大小、记录数量、单记录大小、索引数量、最大并发事务处理能力、负载均衡能力、最大连接数。
Web服务器:Unix/Linux下常用Apache,Windows用IIS,跨平台有WebSphere/WebLogic/Tomcat。核心指标:最大并发连接数、响应延迟、吞吐量(每秒处理请求数)、成功/失败请求数、每秒点击次数、尝试连接数、用户连接数。
🧮 5.2 性能计算:把分数算出来
指标种类繁多,怎么算?四种主要方法:定义法(按定义直接取理想值)、公式法(基本定义衍生的复合计算)、程序检测法和仪器检测法(实测,结果因环境差异大)。实际中常复合计算后加权处理。
1. MIPS计算:MIPS = IPC × Fz(IPC=每时钟周期执行指令数,Fz=主频)。例:P4/2.4E的IPC=2,Fz=2400MHz → MIPS=2×2400=4800MIPS。
2. 峰值计算:浮点计算峰值=每秒能完成浮点运算最大次数。分理论浮点峰值(CPU主频 × 每时钟周期浮点运算次数 × CPU数)和实测浮点峰值。
3. 等效指令速度(吉普森/Gibson法):不同指令速度不同,按比例加权。经典比例:加减50%、乘15%、除5%、程序控制15%、其他15%。改一个小比例指令的CPI也能大幅影响等效速度——如FPSQR占2%但CPI=100,改到4.0后等效CPI从3.92降到2.00,速度翻倍。
⚡ 5.3.1 阿姆达尔定律:别只优化一个小环节
阿姆达尔定律:系统某部件用更快方式执行,性能提升程度取决于该部件被使用的频率(占总执行时间比例)。
加速比取决于两因素:
- 📊 增强比例:可改进部分占原总执行时间的比例(≤1)
- 🚀 增强加速比:整个程序都用增强方式后快多少(原时间/增强后时间)
改进后执行时间 = 未改进部分时间 + 改进部分时间。加速比 = 原总时间 / 改进后时间。
⚖️ 5.3.2 负载均衡:多开几桌分流客人
负载均衡=多台服务器对称组成集合,每台等价地位,外部请求均匀分配到某一台,接到的独立回应。多个服务器同干一个任务就构成集群——用最少投资获接近大型主机的性能。
五种负载均衡技术:
| 技术 | 原理 | 优缺点 |
|---|---|---|
| 特定服务器软件 | HTTP的Location指令重定向 | 可能死循环,实际少用 |
| 基于DNS | 同一名字配多个地址,解析随机返回 | 简单,但刷新延迟、不知服务器差异 |
| 反向代理 | 代理服务器转发请求到内部多台 | 可结合缓存+安全,但代理易成瓶颈 |
| 基于NAT | 地址转换网关均匀映射到内部服务器 | 硬件第四层交换性能优,软件方案更实际 |
| 扩展(半中心) | 请求经中心转发,回应直接返客户 | 中心负担小,适合上百台大规模 |
服务器负载均衡分本地负载均衡(本地服务器群)和全域负载均衡(不同地理位置服务器群间)。全域负载均衡特点:服务就近提供(地理无关性)、提高访问质量、提高响应速度、提高资源利用效率、避免数据中心单点失效。
🏁 5.4.1 基准测试程序:标准考试卷
把应用中最常用最频繁的核心程序作为评价标准,叫基准测试程序(benchmark)。六大代表:
| 程序 | 测啥 | 特点 |
|---|---|---|
| Dhrystone | 整数测试 | C语言100条语句,1VAXMIPS=1757 Dhrystones/s |
| Linpack | 浮点测试 | FORTRAN,浮点加乘,MFLOPS/GFLOPS/TFLOPS |
| Whetstone | 综合测试 | FORTRAN,浮点/整数/调用/变址/转移/超越函数,Kwips |
| SPEC | 全面反映机器性能 | 30+厂商联盟,以VAX-11/780为基数,参考价值高 |
| TPC | 事务处理/数据库/决策支持 | TPC-A/B/C/D/H/W,TPC-C是OLTP工业标准 |
| Linpack测试 | 高性能计算机浮点 | 高斯消元法解线性方程组,HPL是TOP500排名依据 |
Linpack三档:Linpack100(100阶,只编译优化不改代码)、Linpack1000(1000阶,可算法优化)、HPL(无规模限制,可调矩阵大小/CPU数/优化方法,峰值=计算量(2/3·N³-2N²)/时间T)。
🌐 5.4.2 Web服务器性能评估:压力测试
Web服务器核心参数:最大并发连接数、响应延迟、吞吐量(每秒处理请求数)。三种评测方法:基准性能测试(用基准程序测)、压力测试(模拟大量并发操作测指标找瓶颈)、可靠性测试。
IxWeb(IXIA公司)是高性能业务负载生成与分析系统:每端口独立CPU/内存跑Linux,有完整TCP/IP栈,可模拟大量Web客户产生大量并发连接。支持GET/POST/PUT/HEAD/DELETE,支持SSL/HTTPS,可仿真FTP大文件下载,配置"思考时间"模拟真实用户行为。
📊 5.4.3 系统监视:给餐厅装监控
系统监视目标=评估系统性能。需收集三种性能数据:
| 数据类型 | 作用 | 餐厅类比 |
|---|---|---|
| 常规性能数据 | 识别短期趋势(如内存泄漏),一两个月后求平均存档,做容量规划 | 每日流水账 |
| 比较基准数据 | 发现缓慢长期变化,与历史对比排障调整 | 月度/季度对比报表 |
| 服务水平报告数据 | 确保满足服务水平,可能给决策者看 | 给老板的KPI报表 |
三种监视方式:①系统自带命令(UNIX的w/ps/last、Windows的netstat);②查系统记录文件;③集成命令+文件+可视化界面的工具(Windows的Perfmon)。专业平台有IBM Tivoli、HP Sitescope等统一监控。
老王服了:"原来性能不是砸钱加机器,是量、算、设计、评估四步走。"小明合上笔记本:"这才第五章,离架构师还远着呢。"