性能工程高手课
庄振运
Facebook性能优化和容量管理高级专家
立即订阅
2337 人已学习
课程目录
已更新 33 讲 / 共 36 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 代码不要眼前的苟且,而要效率的提升和性能的优化
免费
开篇:认识代码性能和系统容量效率 (3讲)
01 | 程序员为什么要关心代码性能?
02 | 程序员也要关心整个系统和公司成本吗?
03 | 导读:专栏是怎么设计的?需要哪些知识?
性能定律和数理基础 (5讲)
04 | 性能工程三定律:IT业和性能优化工作的“法律法规”
05 | 概率统计和排队论:做性能工作必须懂的数理基础
06 | 性能数据的分析:如何从大量数据中看出想要的信号?
07 | 性能数据的展示:一图胜千言,说出你的数据故事
08 | 经验总结:必须熟记的一组常用性能数字
性能测试 (5讲)
09 | 性能测试的种类:如何快准狠地抓住一个测试的本质?
10 | 性能测试的规划和步骤:为什么性能测试不容易一蹴而就呢?
11 | 性能测试的工具:七大测试场景如何选择高质量的测试工具?
12 | 九条性能测试的经验和教训:如何保证测试结果可靠且可重复?
13 | 性能测试的工程集成:如何与产品开发和运维业务有机集成?
性能分析 (5讲)
14 | 性能分析概述:性能问题归根结底是什么原因?
15 | CPU篇:如何让CPU的运行不受阻碍?
16 | 内存篇:如何减少延迟提升内存分配效率?
17 | 存储篇:如何根据性能优缺点选择最合适的存储系统?
18 | 网络篇:如何步步拆解处理复杂的网络性能问题?
性能优化 (6讲)
19 | 性能优化六大原则:三要三不要,快速有效地进行优化
20 | 性能优化十大策略:如何系统地有层次地优化性能问题?
21 | CPU案例:如何提高LLC(最后一级缓存)的命中率?
22 | 系统案例:如何提高iTLB(指令地址映射)的命中率?
23 | 存储案例:如何降低SSD峰值延迟?
24 | 跨层案例:如何优化程序、OS和存储系统的交互?
性能工程实践 (5讲)
25 | 如何在生产环境中进行真实的容量测试?
26 | 怎么规划和控制数据库的复制延迟大小?
27 | 多任务环境中的Java性能问题,怎样才能不让程序互相干扰?
28 | 网络数据传输慢,问题到底出在哪了?
29 | 如何彻底发挥SSD的潜力?
容量规划与服务效率 (3讲)
30 | 服务器的管理和部署:工业界近几年有哪些发展趋势?
31 | 规划部署数据中心要考虑哪些重要因素?
32 | 服务的容量规划:怎样才能做到有备无患?
性能工程高手课
登录|注册

23 | 存储案例:如何降低SSD峰值延迟?

庄振运 2020-01-17
你好,我是庄振运。
我们之前讲过,存储系统的性能很关键(参见第 17 讲)。我们这一讲就探讨存储方面的优化案例,是关于 SSD 性能的。
现在很多公司里面的高性能存储系统,一般都是基于 SSD 的,这主要归功于 SSD 价格在近几年的大幅度下降。但是,SSD 也不是包治百病的灵丹妙药,也有自己的特殊性能问题。我们今天就重点讲述两点:SSD 的损耗IO 访问延迟偶尔过大的问题。
这里的第二个问题可能听起来很让人吃惊:不是说 SSD 延迟很低吗?
一般情况下,是的。但是特殊情况下就不一定了,这个就说来话长了,它和 SSD 的内部原理有关。我们会一步步地探讨问题形成的原因和解决的策略。

SSD 为什么会损耗?

我们的第 17 讲是关于存储系统的,讲过 SSD 的工作原理和性能。为了防止你忘记,我们就在这里快速地回顾一下其中的一个重要概念:写入放大
什么是写入放大呢?当写入 SSD 的物理数据量,大于应用程序打算写入 SSD 的逻辑数据量时,就会造成“写入放大”。
如果是传统硬盘 HDD,就不会有写入放大的问题。那么 SSD 为什么会有写入放大呢?这是因为 SSD 内部的工作原理和硬盘很不一样。
我们知道,HDD 是可以直接写入覆盖的。和 HDD 不同,SSD 里面的页面只能写入一次,要重写的话,必须先回收擦除,而且只能在“块”这个级别进行擦除。因此呢,SSD 内部就需要不断地移动所存储的数据,来清空需要回收的块。也就是说,SSD 内部需要进行块级别的“垃圾回收”。垃圾收集器必须有效地在 SSD 内部不断地回收块,回收以前使用的页面空间,然后才能在这个块上写入新数据。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《性能工程高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(2)

  • 我来也
    现在很多都是用的云服务器了,不知道云厂商是怎么来调优的。
    我们在使用云服务器的过程中,如果遇到了ssd的间歇性性能问题,有什么好办法来判断是自身程序的问题还是云服务器的问题呢?

    之前在使用某云时,遇到过写入一个3M的日志,耗时2分多钟的情况,整个进程就租塞住了。
    好在当时是有时间戳,知道是卡在写日志了。

    作者回复: 这个问题的确诊断比较复杂,一个直观的方案就是对比。
    比如如果其他服务用同样的云服务器,都好好的,那多半就是自己这个服务导致的。倒也不一定就是服务的程序有“问题”,只是需要考虑硬件特点来调优一下。
    如果没有其他对比服务,可以试着自己写一个测试服务,用同样的云服务器。然后调节测试服务的各个参数,看看能不能把问题重现出来。

    2020-01-19
  • 黑崽
    fstrim挂起之后,有办法干预吗?

    作者回复: 应该不行。原理上讲,操作系统的命令传给了SSD;挂起也多半是因为SSD内部导致的,操作系统也不能做啥了。

    2020-01-19
收起评论
2
返回
顶部