性能工程高手课
庄振运
Facebook 性能优化和容量管理高级专家
24631 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
性能工程高手课
15
15
1.0x
00:00/00:00
登录|注册

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

网络相关
操作系统和应用程序相关
CPU和内存相关
存储相关
性能优化常用性能数字

该思维导图由 AI 生成,仅供参考

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

有言在先

但是我必须强调说明的是,我之所以给出具体的单个数值,是为了方便你记忆,并让你对性能指标“有感觉”。因为单个值比给出数值范围更直观。
比如传统硬盘的 IO 延迟,如果我冠冕堂皇地说:“IO 延迟的大小取决于很多因素,比如硬盘型号、IO 大小、随机还是连续、磁头离数据的远近等,从小于 1 毫米到几秒钟不等。“这样的说法当然对,但是并不能帮助你找到数字的感觉,所以直观指导意义不是很大。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

这篇文章深入探讨了在进行性能优化时需要牢记的一组常用性能数字,包括存储、CPU、内存、操作系统和应用程序、网络等方面的关键性能指标。作者强调了这些数字对于快速发现系统性能问题的重要性,并指出了它们在性能优化和设计工作中的实际应用。文章详实内容丰富,对于读者快速了解性能优化的关键数字具有很高的参考价值。同时,通过引用古诗和提出思考题,文章也增加了趣味性和互动性。总的来说,这篇文章对于技术人员了解和应用性能优化的关键数字具有很高的指导意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能工程高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(11)

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

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

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

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

    2019-12-13
    2
  • 张伯毅
    千兆网卡和万兆网卡的性能差别还是很大的. 这个有参考的数值么????

    作者回复: 什么样的数值呢?建议可以网上搜一下,或者查一下具体网卡的手册。

    2020-04-19
  • 杰哥长得帅
    『如果这个地址需要根据现有的指令计算结果才能决定,那么就构成了指令分支』 老师,关于这个指令分支能举个例子吗?根据现有指令计算下个指令地址的例子

    作者回复: 比如你要进行二进制查找,就需要上次计算结果才能确定下次的地址。

    2020-04-04
  • xuanyuan
    赞一个,比较全面,最初数据来源还是网传jeff dean 的那个胶片

    作者回复: 谢谢。有一点要注意,技术发展很快,这些数字需要不断更新。活到老学到老。

    2020-03-08
  • 朱明
    请问存储性能数据,是包括kernel调用在内的耗时吗?

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

    2019-12-19
  • hello
    作为一名程序员还是喜欢这种直接的数据,虽然仅仅只是参考值,赞一个
    2019-12-13
    5
  • Scott
    熟悉各种数据的baseline很重要,我给人指出性能问题,结果有人对着超过10%的sys cpu说不高啊~ 还有,各种数据都是关联的,比如我们出过一个问题,kernel有泄漏消耗了很多sys cpu,但是看上去磁盘响应也慢,网络响应也慢,然后就有不求甚解的同学天天琢磨着优化网络栈。
    2019-12-16
    3
  • Linuxer
    武汉到上海的距离是800多公里,RTT 不到10ms,我想端到端的开销,网络开销应该是大头吧,所以40ms的延迟应该是可以达到的
    2019-12-13
    1
  • 在路上
    庄老师好,我看到(线程)上下文切换消耗几千个时钟,加锁只需要几十个时钟,这是否意味着,在写代码的时候,按key加锁的效率要高于按key指定线程执行。我是从事游戏开发,最近对我们的游戏进行了战斗压测,java项目,飞行器显示每秒上下文切换7000+,是否过高?我怎么知道上下文切换时什么导致的?
    2021-01-30
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部