在我们持续往固态硬盘SSD中写入数据时,碰到速度突然下降的情况,主要有两种情况:一是SLC Cache写满,二是写入温度过高后SSD Clock频率降低。但是这两种情况下速度下降的节点有所区别。我们分别来阐述一下:

SLC Cache写满后写入速度下降

要了解这种情况下写入速度下降的问题,我们需要先了解一下SSD写入数据的原理以及为什么引入SLC Cache.

我们知道目前市场NAND的主要有,SLC,eMLC,MLC,TLC,QLC

早些年,固态硬盘很多采用的都是SLC,MLC。但是由于价格太高,让SSD无法真正的进入寻常百姓家。之后,随着TLC的问世,凭借成本的优势,TLC NAND迅速成为SSD的主力军。目前市场上买到的SSD基本都是TLC NAND了。但是,TLC NAND有一个劣势,就是page program时间比SLC要长很多,这样的话,直接导致了SSD的整体写入性能不尽如人意

人类是最聪明的高级生物。为了让TLC SSD具有低成本的同时兼具高性能的读写速度,人们就发明了SLC Cache.

1. 当我们网SSD写入数据时,主控会把数据先写入SLC cache。此时,我们看到的写入速度就是写入SLC NAND的速率。当SSD处于Idle时,再将SLC Cache中的数据搬入真正的数据存储区块TLC NAND。

2. 当我们持续写入数据超过SLC cache size时,数据就会直接写入数据存储区块TLC NAND,此时,我们看到的写入速度就是写入TLC NAND的速率。

我们看一个HD Tune实测的SSD数据,如下图,我们看到在写入数据超过3GB时,写入速率就会下降30%左右。也就是说,这块SSD的SLC Cache大小为3GB。

不同容量的SSD,SLC cache的大小也不同,由SSD生产商自己调整,一般业内设定如下表:

写入温度过高后SSD Clock频率降低导致写入速度下降

SSD,特别是NVMe SSD为了防止SSD运行温度过高,都有一个自调节功能,叫做Thermal Throttling,也就是当持续写入大量数据后,SSD运行温度会超过SSD阈值(0~70度),此时,SSD主控就会降低工作clock频率,以降低工作loading,达到降温的目的。不过,这样做的缺点就是以牺牲写入速率作为代价。以三星 960 EVO NVMe SSD测试数据为例,如下图。

从上图,我们可以看到,当写入数据量超过300GB时,写入速率就会下降10%左右。这个速率下降不是特别明显。

结语

我们罗列了两种导致写入速率下降的因素,SLC Cache才是造成写入速率突然有大幅下降的主要因素。


小编在此抛砖引玉,欢迎各位看官拍砖讨论!