我们后台经常能收到一些关于日常使用硬盘降速的问题,虽然都是“降速”但是导致“降速”的原因各有不同,所以本着科普的原则,本文就给大家简单介绍下几种情况,大家可以自己对照看看,自己遇到的是什么情况。
一、 SLC Cache缓存用尽
这一个是大家遇到最多的情况,早在MLC时代就有固态采用SLC Cache来提升写入速度,而SLC Cache总有一个定量,不同型号固态和不同容量固态可设置的容量不一致,所以有的多有的少。
SLC Cache缓存的意义旨在短期内提升固态的爆发写入能力,短时间内降低写入时间,代价则是发热和加快消耗颗粒寿命(降低数据安全性),这是常规所能遇到最常见的“降速”。
上面测试图片为单一连续文件,文件大小为39G,出现两个明显的性能梯度,并且两个梯度分别维持在一个稳定的性能水平,这种情况一般是SLC Cache缓存用尽,然后降低至缓存速度(固态本来的速度)。
最简单的例子来说,同样是跑步,100米和400米两个项目,但是各自跑法不一样,相应的速度不一样,如果拿100米的跑法去跑400米,在100米跑完之后基本上体力就耗尽,跑步的速度就下降了,而SLC Cache缓存的机制,就更像是在400米的前100米左右,来一波冲刺,但是同时保存了一定的能力,能够在后300米,任然以一定的速度完成写入(当然,用100米冲刺之后需要更长时间回恢复)。
二 复制文件时
另一种情况也是比较常遇见的,并且相比缓外速度带来的影响要更大一些,在日常使用中,有时候会因为一些原因,需要转移一部分文件,在复制过程中会发现,文件复制的速度会出现较大的波动,然后不知情的小白就会加之以厂商“虚假宣传”等口号,而实际是自己不了解背后的原因。
以刺客信条·大革命来举例,文件根目录可以看到文件的数量众多,并且文件大小不一致,仅游戏根目录下就拥有76个文件,其中最大单个文件13.8G,最小仅14字节,在读取和写入这两个文件时,实际上固态能够发挥的性能,并非一个指标,或者说并非一个项目。
而在写入/读取文件时,读取到的文件大小是近似随机的,并无规律可循,所以相应的在写入/读取的过程中,固态性能会随之波动,日常厂商所宣传的性能,实际上也是指最高顺序读写性能,而日常使用中随着文件大小和数据纵深的变化,都会影响最终性能。
常见的AS SSD跑分软件,可以看到四个测试项目,分别为Seq、4K、4K-64 Thrd和Acc.time。
其中Seq是顺序读取,日常遇到比较多的,大型建模、视频音影、压缩文件等,基本上都是单一连续文件,尺寸较大,这一项测试一般能够达到官方宣传。
4K是单线程测试,测试的也是小文件的读写能力,不过因为只有单线程,所以性能一般都较低,不过这个性能指标是针对小文件读写的,所以性能高低其实对日常影响并不算特别大,毕竟文件就那么大,10M/S和20M/S读写都是瞬间完成,体量在那,再说你再牛,也牛不过傲腾对吧?
4k-64Thrd类似于4K单线程的升级版,将单线程升级为64路并列,同时进行测试,所以一般这一项成绩会更高,对于一些数据库或者说复杂应用会比较重要,日常使用中一般不太会涉及这部分内容,毕竟咱就是个臭打游戏的。
Acc.time简单地说就是响应时间,就是主机下达读写任务时硬盘响应的时间,很多人会觉得固态是因为什么“读速高达7000MB/s”才完虐机械,但是实际上固态对比机械来说,完虐的点在于响应时间和4K性能,特别是多任务时的响应时间。
解释完跑分软件四项性能参数,其实想得明白的已经明白了,单独测试时是将每一个项目单独分开进行测试,单次只测试一种类型,而复制文件时,则是随机进行测试,文件的尺寸决定了应该使用文件的类型,另外测试软件测试时部分软件使用的数据为全0,并不完全代表实际使用。
三 高温降速
这个问题其实比较好理解,任何电子产品都有一个适合的工作温度,在超过这个温度之后,往往都会选择降低工作频率以降低发热量(毕竟他也不能自己加强散热对吧),来改善运行温度,在温度降低至合适的区间之后,又会提高运行频率运行。
这一类的情况,往往会出现较大且规律的数据波动,在数据读写的一开始能够保持比较高并且稳定的速度,在温度达到设定的温度墙时,便会出现一次降速,再温度降低之后性能又会恢复,以此往复。
而反应到实际使用过程中,出现的效果也类似于复制文件时出现的,资源管理器反映的性能折线图也是会比较的一波三折,一般固态硬盘的温度墙为主控温度的70~80度之间(不一定是软件检测的温度)。
改善方法也很简单,适当做一下固态的散热就可以了,目前比较多见在M.2上,而较早的SATA和M-SATA的固态也有部分型号会较热。
四 非表面性能
这里其实比较复杂了,就涉及到固态本身的运行机制问题,这里其实会部分关系到SLC Cache缓存和垃圾回收机制(TRIM),简单的将硬盘操作理解成两个层面,第一层面是消费者操作的界面(可见操作界面),第二则是固态实际运行的层面(不可见操作界面)。
在消费者完成文件的复制、删除等操作之后,第一层的操作就完成了,然后固态会在后台继续完成后续的工作,其中主要就包括TRIM的工作,在第一层面的一些操作,实际上都需要第二层面去进行后续的跟进,比如说第一层面进行了删除的操作,实际上在当时只是下达了删除的指令,硬盘部分只是将这段数据标记为待删除,加入了待做事项之中。
在系统比较空闲的时候,固态就会开始运行TRIM机制的工作,简单的来说就是处理一些待做事项,其中包括将标记为删除的数据清零、将SLC Cache缓存中的数据转移至存储空间中,恢复空间并删除临时数据、整理数据等工作,合计都是拖延症~~~
如果固态在第二层面进行一些工作的同时,你在第一层面,又下达了其他的指令,那在工作的一开始必然会受到影响,进而影响性能发挥,不过这种情况一般过一会就能恢复到最佳性能,毕竟优先服务第一层。
上次提到三星的SLC Cache缓存失效问题就出现在TRIM回收策略上,如果说上述问题还是拖延症,那三星出问题的批次TRIM机制就属于集体半罢工了。
番外·科普中的小科普
关于标记为删除的数据,机械硬盘一般是无视的,因为可以直接覆盖写入新的文件,固态就需要彻底清零数据,不然会影响写入性能。
另外,固态的实际写入还会遇到这样的情况,由于文件大小和写入时间是随机的,所以运行一定时间之后,固态中会出现一些数据是间隔开存放的现象,简单地说就是一个文件会被分散存放,但是在运行时,主控无法修改位置,所以在写入时会在遇到已有数据的区块{扇区}跳过这部分并且标记,然后再开始写入后续的文件。
在数据写完之后,会在空闲的时候进行一次数据转移的过程,将中间部分数据进行迁移,然后合并文件。
在早期的电脑相关建议之中,一般会有建议使用机械硬盘的电脑定期运行磁盘整理,其实就是主动的进行磁盘数据整理,用来调整零碎小文件的存储位置,以释放连续的可用空间出来,改善读取时磁头运行轨迹的优化和改善写入时的性能。
不过相对于固态来说,这件事对于机械来说就比较重要了,毕竟物理结构限制,只能尽可能软件优化。。。
而固态硬盘因为存在TRIM的机制且结构和机械完全不一样,所以实际上并不建议固态硬盘手动执行磁盘整理,机械硬盘可以没事的时候运行一次,就是耗时很久,改善也有限。
五 机械稍微特殊亿点
机械这边呢,受限于机械结构,所以还要考虑寻道时间的影响,读取时如果需要读取一些特别小的文件,相应的在磁盘上数据长度就会很短,磁头就需要更加精准的找到数据的位置,响应的寻道时间就会增加,单位时间内读取的数据就会很低,响应时间和性能就会偏低,甚至于多线程的时候会出现假死的情况,这时候响应时间甚至可以用分钟去计算(固态往往不会超过1毫秒)。
为了改善寻道时间,机械这边有个NCQ功能,看图就明白了,不多说~~~这技术也发布很多很多年了,是个00后的技术,不过最后固态一统江湖其实也就明白了,这技术也没法逆天改命,改善效果明显,但是难挽回机械颓废的性能。
总的来说呢,除了高温降速之外,大部分情况其实消费者都无力解决,而部分情况看上去降速?实际上只是达到了对应的速度,你总不能拿100米的成绩去要求跑400米吧?合理看待性能指标即可~~~
记 得 做 散 热 ~ ~ ~
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.