第5章 · 播客 第2集

系统性能评价 · 响应时间、RASIS 与性能计算例题

🎙️ 本集播客第2集:从主频、高速缓存讲到 MIPS 与 MFLOPS 的分工、MIPS 与理论浮点峰值两个公式、米勒的 0.1 秒/1 秒/10 秒三条响应时间建议、RASIS 五个字母逐一拆解,再把阿姆达尔定律的两个因素和吉普森法的五组百分比背下来,中间夹一道 14.7 纳秒的平均访存时间演算。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第5章播客 第2集
⬇ 下载本集 点击播放
阿明
0.1 秒、1 秒、10 秒,我记得是这三个数。但哪个数对应哪句话我经常配错。
小雅
一句一句钉。0.1 秒:用户感觉不到任何延迟。1.0 秒:用户愿意接受的系统立即响应的时间极限,也就是说当执行一项任务的有效反馈时间在 0.1 到 1 秒之内时,用户是愿意接受的;超过这个值,则意味着用户会感觉到有延迟,但只要不超过 10 秒,用户还是可以接受的。10 秒:用户保持注意力执行本次任务的极限。
小雅
第三句还有后半段,一起背:如果超过 10 秒仍然得不到有效的反馈,客户会在等待计算机完成当前操作时转向其他的任务。所以题目问「用户保持注意力执行任务的极限时间是多少」,答 10 秒。选项一般给 0.1 秒、1 秒、10 秒、60 秒。
阿明
那 1 秒和 10 秒怎么区分?两个听起来都像「极限」。
小雅
关键在极限的是什么东西。1 秒是「立即响应」的极限——超过 1 秒用户就觉得有延迟了,但还愿意等;10 秒是「注意力」的极限——超过 10 秒人就跑去干别的了。所以看到题干里有「保持注意力」四个字,就选 10 秒;看到「感觉是立即响应」或者「愿意接受的立即响应极限」,选 1 秒;看到「感觉不到任何延迟」,选 0.1 秒。三个数、三句话,一对一。
阿明
这个「极限的是什么」的分辨法我记住了。下一个是 RASIS?
小雅
对,五个字母一个都不能漏。RASIS 特性是可靠性 Reliability、可用性 Availability、可维护性 Serviceability、完整性 Integraity 和安全性 Security 五者的统称。按字母顺序念一遍:R 是可靠性,A 是可用性,S 是可维护性,I 是完整性,最后那个 S 是安全性。
阿明
等等,S 出现了两次?中间那个 S 是可维护性,最后一个 S 是安全性?
小雅
你抓到这道题的命门了。题目问「RASIS 中的 S 代表什么」时,四个选项通常是:可扩展性 Scalability、稳定性 Stability、速度 Speed、可维护性 Serviceability。答案是可维护性 Serviceability。因为这道题问的是 R-A-S-I-S 里按顺序排第三位的那个 S,也就是 Serviceability;至于安全性 Security,它对应的是末尾那个 S,通常不在选项里。
阿明
那可扩展性、稳定性、速度这三个都是编出来的?
小雅
都是拿 S 开头凑的干扰项,教材的 RASIS 里没有任何一个是它们。Scalability 可扩展性在原文里属于定性指标,跟 RASIS 无关;Stability 稳定性和 Speed 速度更是纯凑。你就死记两句:RASIS 里的 S 是 Serviceability 可维护性;如果题目问「安全性对应哪个字母」,答最后那个 S、Security。
小雅
再把 RASIS 里带公式的两项补上,也是常考的。可靠性是指计算机系统在规定的工作条件下和规定的工作时间内持续正确运行的概率,一般是用平均无故障时间 MTTF,或者平均故障间隔时间 MTBF 来衡量。可维护性是指系统发生故障后能尽快修复的能力,一般用平均故障修复时间 MTTR 来表示,它取决于维护人员的技术水平和对系统的熟悉程度。
阿明
MTTF、MTBF、MTTR 三个缩写差一个字母,容易看花眼。
小雅
配对记:可靠性配 MTTF 和 MTBF,都是「多久才坏一次」;可维护性配 MTTR,R 是 Repair,是「坏了多久能修好」。还有一个别混进来的指标:平均故障响应时间 TAT,即从出现故障到该故障得到确认修复前的这段时间,该指标反应的是服务水平,平均故障响应时间越短,对用户系统的影响越小。TAT 是独立的第 10 个指标,不属于 RASIS。
阿明
TAT 单列。那吞吐量算在哪一块?
小雅
计算机这一节把它归到「其他性能指标」里:综合性能指标如吞吐率、利用率;定性指标如保密性、可扩充性;功能特性指标如文字处理能力、联机事务处理能力、I/O 总线特性、网络特性等。操作系统那一节给了吞吐量的准确定义:系统的吞吐量是指系统在单位时间内所处理的信息量,以每小时或每天所处理的各类作业的数量来度量。
阿明
操作系统的响应时间和计算机的响应时间是一回事吗?
小雅
定义口径不同,要分开记。操作系统的系统响应时间,是指用户从提交作业到得到计算结果这段时间,又称周转时间——「又称周转时间」这个别名是考点。同一节还有系统资源利用率,指系统中各个部件、各种设备的使用程度,它用在给定时间内某一设备实际使用时间所占的比例来度量。评价操作系统的五个性能指标是:系统的可靠性、系统的吞吐量、系统响应时间、系统资源利用率、可移植性。
阿明
好,指标部分过完了。剩下两个公式:阿姆达尔和吉普森。
小雅
阿姆达尔定律先背定律本身:系统中对某部件采用某种更快的执行方式,所获得的系统性能的改变程度,取决于这种方式被使用的频率,或所占总执行时间的比例。翻译成一句话——你优化的那部分占比越大,整体收益才越大;优化一个只占 1% 的环节,整机快不了多少。
阿明
那加速比是什么?
小雅
阿姆达尔定律定义了采用特定部件所取得的加速比:假定使用某种增强部件,计算机的性能就会得到提高,加速比反映了使用增强部件后完成一个任务,比不使用增强部件完成同一任务加快了多少。原文明确写了——加速比主要取决于两个因素,这两个因素就是考点,一个字都别记错。
小雅
第一个因素:在原有的计算机上,能被改进并增强的部分在总执行时间中所占的比例,这个值称之为增强比例,它永远小于等于 1。第二个因素:通过增强的执行方式所取得的改进,即如果整个程序使用了增强的执行方式,那么这个任务的执行速度会有多少提高;这个值是在原来条件下程序的执行时间,与使用增强功能后程序的执行时间之比。
阿明
所以简称就是「增强比例」和「改进程度」这两个。
小雅
对,标准答案就是增强比例和改进程度。干扰项一般是三组硬件参数:时钟频率和缓存大小、CPU 主频和内存容量、带宽和延迟——这三组全是拿具体硬件指标来冒充的,阿姆达尔定律根本不关心你的主频和内存有多大,它只关心「被优化的部分占多大比例」和「这部分能快多少倍」。看到选项里出现具体硬件名词,一律排掉。
阿明
记牢了。还有一句关于执行时间的原文吧?
小雅
有:原来的机器使用了增强功能后,执行时间等于未改进部分的执行时间,加上改进部分的执行时间。这句是加速比公式的推导起点——总时间被切成「没优化到的」和「优化过的」两块,没优化那块是死的,所以它的占比就是整机加速的天花板。
小雅
最后是等效指令速度法。先分清两个前置概念:静态指令使用频度指的是在程序中直接统计的计算机速度;动态指令使用频度指的是在程序执行过程中统计的指令速度。在计算机发展的早期,用加法指令的运算速度来衡量计算机的速度,后来发展成为等效指令速度法,或者叫吉普森法。
阿明
吉普森法的那几个百分比,我只记得加减法占得最多。
小雅
五个数,念一遍:通常加、减法指令占 50%,乘法指令占 15%,除法指令占 5%,程序控制指令占 15%,其他指令占 15%。加起来正好 100%。所以题目问「吉普森法中加减法指令通常占比多少」,答 50%。选项给 15%、25%、35%、50%——那个 15% 是拿乘法和程序控制、其他指令的占比来钓你的,25% 和 35% 是纯凑数。
阿明
加减法一半,这个「一半」好记。有例子吗?
小雅
有两个。第一个:我国最早研制的小型计算机 DJS-130,定点 16 位,加法速度每秒 50 万次,但没有硬件乘法和除法等指令,用软件实现乘法和除法,速度降低 100 倍左右,则其等效指令速度为每秒 2 万次——由于乘法和除法用软件实现,等效速度降低了 25 倍。50 万降到 2 万,正好 25 倍。
小雅
第二个例子是等效 CPI,演算念一遍:如果浮点开平方操作 FPSQR 的比例为 2%、它的 CPI 为 100,其他浮点操作的比例为 23%、CPI 为 4.0,其余指令的 CPI 为 1.33,则该处理机的等效 CPI 等于 100 乘 2%,加 4 乘 23%,加 1.33 乘 75%,等于 3.92。
阿明
那 75% 是怎么来的?
小雅
2% 加 23% 等于 25%,剩下的就是 75%。接着看改进后:如果 FPSQR 操作的 CPI 也为 4.0,则等效 CPI 等于 4 乘 25%,加 1.33 乘 75%,等于 2.00。注意这里 2% 和 23% 合并成了 25%,因为两者 CPI 都变成 4.0 了。结论原文写着:由于改进了仅占 2% 的 FPSQR 操作的 CPI,使等效速度提高了近一倍。
阿明
3.92 降到 2.00,确实差不多一半。这不就是阿姆达尔定律的反例吗——只占 2% 也能提一倍。
小雅
不是反例,是同一个道理的另一面:那 2% 的指令 CPI 高达 100,它在总执行时间里占的比例是 100 乘 2% 等于 2,在总数 3.92 里差不多占一半。阿姆达尔说的是「所占总执行时间的比例」,不是「指令条数的比例」。这个区分很值钱,问答题里经常要你解释为什么优化少量指令能带来大幅提升。
小雅
本集必背,我念你跟着过:MIPS 是百万条指令每秒、描述定点运算能力,MFLOPS 是百万次浮点运算每秒、描述浮点运算能力;MIPS 等于 IPC 乘 Fz,IPC 与 CPI 互为倒数,例题 IPC 等于 2、主频 2400MHz 得 4800 MIPS;理论浮点峰值等于 CPU 主频乘每个时钟周期执行浮点运算的次数再乘系统中 CPU 数,三项都要。
小雅
接着背:米勒三条是 0.1 秒感觉不到延迟、1 秒是愿意接受的立即响应极限、10 秒是保持注意力的极限;RASIS 依次是可靠性、可用性、可维护性 Serviceability、完整性、安全性,问 S 答可维护性;阿姆达尔加速比取决于增强比例和改进程度;吉普森法加减法 50%、乘法 15%、除法 5%、程序控制 15%、其他 15%;Cache 例题答案 14.7 纳秒,别忘了给取操作数那项乘五分之一。
阿明
这些数字我今晚就默一遍。下一集讲什么?
小雅
下一集进性能评估,讲基准测试程序——Dhrystone、Linpack、Whetstone、SPEC、TPC 这一串谁测整数谁测浮点,TPC 的一堆后缀里哪个是 OLTP 的工业标准,还有 HPL 和 TOP500 的关系。全是对号入座的题,比公式还好拿分。