性能工程高手课
庄振运
Facebook性能优化和容量管理高级专家
立即订阅
2132 人已学习
课程目录
已更新 13 讲 / 共 36 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 代码不要眼前的苟且,而要效率的提升和性能的优化
免费
开篇:认识代码性能和系统容量效率 (3讲)
01 | 程序员为什么要关心代码性能?
02 | 程序员也要关心整个系统和公司成本吗?
03 | 导读:专栏是怎么设计的?需要哪些知识?
性能定律和数理基础 (5讲)
04 | 性能工程三定律:IT业和性能优化工作的“法律法规”
05 | 概率统计和排队论:做性能工作必须懂的数理基础
06 | 性能数据的分析:如何从大量数据中看出想要的信号?
07 | 性能数据的展示:一图胜千言,说出你的数据故事
08 | 经验总结:必须熟记的一组常用性能数字
性能测试 (4讲)
09 | 性能测试的种类:如何快准狠地抓住一个测试的本质?
10 | 性能测试的规划和步骤:为什么性能测试不容易一蹴而就呢?
11 | 性能测试的工具:七大测试场景如何选择高质量的测试工具?
12 | 九条性能测试的经验和教训:如何保证测试结果可靠且可重复?
性能工程高手课
登录|注册

08 | 经验总结:必须熟记的一组常用性能数字

庄振运 2019-12-13
你好,我是庄振运。
今天这一讲是”数理基础“这一部分的最后一讲,我在这一讲会给你总结一组性能相关的常用的数字。这些数字在做性能和设计方面的工作时经常用到。它们就像九九乘法表一样,我希望你能熟记在心。
记住这些数字的好处是,每次看到一个性能相关的数据的时候,我们立刻就能知道这个性能数据有没有问题
举个简单例子,如果我们看到一个硬盘的 IO 读写延迟经常在 500 毫秒左右,我们立刻就知道这里面有性能问题。反之,如果硬盘 IO 读写延迟小于 1 毫秒,我们可以马上推断——这些 IO 读写并没有到达硬盘那里,是被操作系统缓存挡住了。这就是大家常说的“对数字有感觉”。
人们常说“腹有诗书气自华”。同理,如果我们能对系统和程序运行中常见的性能指标了如指掌,就有可能达到那种“一眼就看出问题”的大师级别。
为了方便理解和记忆,我把这些数字分成几大类,分别是存储、CPU、操作系统、内存和网络等,并且会给出具体的单个数值。

有言在先

但是我必须强调说明的是,我之所以给出具体的单个数值,是为了方便你记忆,并让你对性能指标“有感觉”。因为单个值比给出数值范围更直观。
比如传统硬盘的 IO 延迟,如果我冠冕堂皇地说:“IO 延迟的大小取决于很多因素,比如硬盘型号、IO 大小、随机还是连续、磁头离数据的远近等,从小于 1 毫米到几秒钟不等。“这样的说法当然对,但是并不能帮助你找到数字的感觉,所以直观指导意义不是很大。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《性能工程高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(6)

  • Q
    我觉得有点困难。
    1.用户和服务器所在的宽带运营商是否为同一家,如果不是同一家,相互间又加多了一层
    2.IP包层层排队转发耗时
    3.光纤传输耗时 800公里,往返就需要 8ms左右
    4.应用后台处理耗时(接口调用、内部函数处理、DB查询处理...巴拉巴拉)
    5.如果用户用的是4G无线网络
    所以综合来看,压缩在40ms内确实有点困难

    作者回复: 没错;理论值只是最小的可能。实际的端到端延迟最好根据实际的测量。

    2019-12-13
    2
  • 张智凯
    武汉到上海按800公里算,传输耗时16毫秒,如果客户端网络200Mbps ,发送一个20k的请求要100毫秒,如果是4k需要20毫秒,服务端按1Gps,响应包4kB,发送延迟4毫秒,加上服务器处理时间和客户端处理时间,感觉40毫秒不够用

    作者回复: 实际的耗时肯定比理论最小值大;大多少也取决于很多因素,所以最好要实际环境测量。

    2019-12-13
    2
  • hello_world
    作为一名程序员还是喜欢这种直接的数据,虽然仅仅只是参考值,赞一个
    2019-12-13
    1
  • Linuxer
    武汉到上海的距离是800多公里,RTT 不到10ms,我想端到端的开销,网络开销应该是大头吧,所以40ms的延迟应该是可以达到的
    2019-12-13
    1
  • 朱明
    请问存储性能数据,是包括kernel调用在内的耗时吗?

    作者回复: 存储性能(比如硬盘,SSD)一般不太受Kernel影响。比如存储延迟,纯碎是存储硬件决定的。
    或者换个角度讲,我们讲存储性能(或者任何性能),都是假设其他模块和资源不是瓶颈。

    2019-12-19
  • Scott
    熟悉各种数据的baseline很重要,我给人指出性能问题,结果有人对着超过10%的sys cpu说不高啊~

    还有,各种数据都是关联的,比如我们出过一个问题,kernel有泄漏消耗了很多sys cpu,但是看上去磁盘响应也慢,网络响应也慢,然后就有不求甚解的同学天天琢磨着优化网络栈。
    2019-12-16
收起评论
6
返回
顶部