你好,我是庄振运。
今天是“性能工程实践”这个模块的最后一讲,我们来讨论一种“软硬件结合”的性能工程优化实践,与 SSD(硬件)有关。现在 SSD 用的越来越普遍的情况你一定非常清楚,但是你设计的应用程序(软件)真的充分利用了 SSD 的特点,并发挥 SSD 的潜力了吗?
要知道,SSD 可不仅仅是“更快的 HDD”。
SSD 的好处显而易见,它作为存储时,应用程序可以获得更好的 I/O 性能。但是这些收益,主要归因于 SSD 提供的更高的 IOPS 和带宽。如果你因此只将 SSD 视为一种“更快的 HDD”,那就真是浪费了 SSD 的潜力。
如果你在设计软件时,能够充分考虑 SSD 的工作特点,把应用程序和文件系统设计为“对 SSD 友好”,会使服务性能有个质的飞跃。
今天我们就来看看,如何在软件层进行一系列 SSD 友好的设计更改。
为什么要设计 SSD 友好的软件?
设计对 SSD 友好的软件有什么好处呢?简单来说,你可以获得三种好处:
先看第一种好处——更好的应用程序性能。在不更改应用程序设计的情况下,简单地采用 SSD 可以获得性能提升,但无法获得最佳性能。
我为你举个例子来说明。我们曾经有一个应用程序,它需要不断写入文件以保存数据,主要性能瓶颈就是硬盘 I/O。使用 HDD 时,最大应用程序吞吐量为 142 个查询 / 秒(QPS)。无论我们对应用程序设计进行什么样的更改或调优,这就是使用 HDD 可以获得的最好性能了。