百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

技术解析:固态硬盘越用越慢怎么办?

nanshan 2024-11-25 15:22 38 浏览 0 评论

固态硬盘越用越慢的原因

固态硬盘会越用越慢,这和固态硬盘的工作原理有很大的关系。固态硬盘使用闪存作为储存介质,而闪存有个特性:必须先擦除之后才能再次写入数据,这一点和机械硬盘不同,机械硬盘可以直接在数据上面覆盖写入。

我们新买固态硬盘的时候,其中的NAND闪存已经预先擦除干净,因此数据可以直接写入,无需完成数据清除这一步,这时数据的写入速度非常快;随着时 间的推移,SSD中从未使用的存储空间越来越少,很多时候必须先擦除闪存中的数据然后再写入,因此其性能就会明显下降。为了解决这种问题,微软和SSD厂 商都做了很大努力,例如Trim、垃圾回收机制等等

下面我们就来谈谈使用SSD时的注意事项。

1.使用环境:Windows 7和AHCI是必须的,当然还有SATA3

必须使用Windows7以上的系统才能更好发挥SSD威力

● 固态硬盘最重要的技术:Trim

为了解决硬盘降速的问题,微软联合各大SSD厂商开发了一个新技术——Trim。Trim没有中文名称,简单的说,就是告诉SSD主控哪些数据占据的地址是“无效”的。

Trim指令的支持需要同时满足以下三个条件:

1.SSD主控制器和搭配的固件必须支持Trim指令接收:这一点完全不用我们去担心,只要是SSD,Trim指令必须得支持,不然就和普通U盘没什么两样。不开TRIM真的会变慢!

2.当前操作系统必须支持Trim指令发送:只有windows7/Server 2008 R2以上的系统才支持。

3.当前使用的磁盘驱动程序必须支持Trim指令传输。有一点需要说明,Trim指令现在还不支持发送给RAID阵列。所以如果看到有“高富帅”在用SSD组RAID炫速度,大胆地鄙视吧。

● SATA3.0接口才能满足高速SSD的胃口

接口方面,现在主流的SSD都采用SATA3接口,因为SATA2接口的最大理论速度只有300MB/S,如果你把一款读取速度500MB/s的SSD接到SATA2接口上...我真的表示很无奈。

然后我们说说BIOS设定,强烈建议开启AHCI模式。因为AHCI中的原生命令队列特性(NCQ)可以优化用户发送指令的顺序,从而降低设备负荷,提升设备性能。有些较老的主板可能不支持AHCI,这种产品一般也不会有SATA3.0接口,SSD性能会大打折扣。

2.分区方法:小分区、少分区

SSD有一种技术叫做“垃圾回收机制”,前面已经讲过Trim是系统用来告诉SSD主控哪些数据所占据的地址是“无效”的,而“垃圾回收机制”就是SSD内部对这些“无效”数据进行清理的过程。

垃圾回收机制非常考验主控的数据处理能力

SSD中的擦除只能是“将无效数据所在的整个区域摧毁”,不能像机械硬盘那样实现“点对点精确定位打击”,因此“垃圾回收机制”过程也显得很繁琐——先把区域内的有效数据集中起来,转移到空闲的位置,然后把“问题区域”整个清除,清除出来的地方可以作为下次垃圾回收时的转移地点。

大部分SSD都已经由厂商“内定”了预留空间

所以“小分区”的概念就出来了。所谓“小分区”就是不要把SSD的容量都分满,保留一部分容量作为“空闲位置”,用于SSD内部的优化操作,如磨损平衡、垃圾回收和坏块映射。一般情况下这一步骤厂商已经帮我们设定好了,例如NAND容量128G的SSD,厂家会标称120G,剩下的部分就被设置成了预留空间。当然如果你十分注重SSD性能,也可以在此基础上继续增加预留空间,在分区的时候只分100G或者更少

如果固态硬盘也能像机械硬盘这样随便分区就好了

“少分区”则是另外一种概念,关系到4k对齐对SSD的影响。一方面现在主流SSD容量都不是很大,分区越多意味着浪费的空间越多(每个分区总有那么些空间是用不到的),另一方面分区太多容易导致分区错位,在分区边界的磁盘区域SSD性能可能受到影响。

Win7自带的分区工具支持4K对齐

关于4K对齐操作,在机械硬盘时代可能大家都不太注重,但到了SSD时代4K分区对齐与否对性能有着很大的影响。怎样才能实现4K对齐?最简单的方法就是用Win7自带的分区工具进行分区,这样能保证分出来的区域都是4K对齐的。

3.平时保养:不要使用碎片整理,保持分区“苗条”

● 不要使用碎片整理

把机械硬盘时代的“好习惯”带到了SSD上不一定“好用”。在以前,我们总会听到各种“砖家”的提醒——系统变慢记得碎片整理,往往整理过后能感觉到系统运行明显快了很多,殊不知碎片整理对于SSD来说完全就是一种“折磨”。

“磁盘整理”对SSD来说是一种折磨

消费级固态硬盘使用的MLC NAND FLASH作为储存介质,这种芯片一般只有5000~10000次的擦写寿命(P/E),碎片整理需要对硬盘频繁擦写,会大大减少SSD的使用寿命,其实,SSD自带的垃圾回收机制就已经是一种很好的“磁盘整理”,再多的整理完全没必要。Windows的“磁盘整理”功能是机械硬盘时代的产物,并不适用于SSD。

SSD内部没有机械结构,主要部件是主控和闪存芯片

除此之外,可以考虑禁用win7的预读(Superfetch)和快速搜索(Windows Search)功能,在SSD平台这两个功能的实用意义不大,通过禁用这两项功能降低硬盘读写频率。

● 让分区保留足够的剩余空间

如果SSD也这样折腾估计早就崩溃了

前面有说过SSD的“垃圾回收机制”,可以算是SSD内部最考验主控能力的步骤:当硬盘占用接近“满容量”的时候,垃圾回收的量非常多,主控芯片需要处理大量数据,几乎是满负荷运作,这就是为什么SSD越用越慢的原因之一。

相对廉价的机械硬盘适合当“仓库”使用

所以让分区保持“苗条”很重要,及时清理无用的文件,设置合适的虚拟内存大小,将电影音乐等大文件放到机械硬盘“仓库”等等,让SSD分区保留足够的剩余空间。

4.刷新固件:最有效的提速方法

“固件”好比主板上的BIOS,固态硬盘的一切内部操作都要依靠固件来控制,可以说固件质量的好坏直接关系到SSD的性能表现,论重要性毫无疑问是排在了第一位。固件不单直接影响SSD的性能、稳定性,也会影响到SSD的寿命。优秀的固件包含先进的算法能减少固态硬盘不必要的写入,从而减少闪存芯片的磨损,维持性能的同时也延长了固态硬盘的寿命。因此及时更新官方发布的最新固件显得十分重要。

5.恢复指令:对付SSD降速的终极手段

如果你以前没有注意过前面这些操作,现在的SSD已经被“折腾”得奄奄一息,还有一个终极手段——Trim重置。这个指令会让SSD回到出厂性能,原地满血复活,但不建议过多使用,因为对SSD来说,每做一次Trim重置就相当于完成了一次完整的擦写操作,对磁盘寿命会有影响。

现在有许多软件都能提供ATA安全擦除指令来重置磁盘,最著名的是HDDErase。操作过程大致也是将主板BIOS的启动顺序改为光驱优先或者U盘优先,然后插入存好软件的启动设备,进入引导界面,根据提示来操作。

这里建议使用英特尔固态硬盘工具箱(IntelSSD Toolbox)来完成此任务,不用打繁杂的代码,直接在windows下按照提示鼠标操作即可,最大程度的避免了SSD性能衰减。相较其他固态硬盘只能用格式化磁盘的方式来恢复性能,更为方便。

相关推荐

删库之后不要着急跑路,教你神不知鬼不觉找回数据

在工作中,我们误删数据或者数据库,我们一定需要跑路吗?我看未必,程序员一定要学会自救,神不知鬼不觉的将数据找回。在mysql数据库中,我们知道binlog日志记录了我们对数据库的所有操作,所以...

数据库告警不可用,增删改受阻(数据库限制删除)

前言:昨晚,突然出现服务不可用告警,查看日志上线报文入库到数据库很慢并受阻,出现数据不同步问题。排查问题查看发现服务都是在执行update、insert这些DML命令的时候,报的数据库执行超时。经过一...

Binlog实现MySQL复制,5个关键步骤,务必掌握!

复制是MySQL最重要的功能之一,MySQL集群的高可用、负载均衡和读写分离都是基于复制来实现的。Binlog就是实现主从复制的关键,主数据库将修改操作记录到Binlog中,从数据库通过解...

MySQL数据实时增量同步到Elasticsearch

Mysql到Elasticsearch的数据同步,一般用ETL来实现,但性能并不理想,目前大部分的ETL是定时查询Mysql数据库有没有新增数据或者修改数据,如果数据量小影响不大,但如果几百万上千万的...

MySQL 数据库恢复:如何执行时间点恢复(PITR)以挽救受损数据?

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、数据取证、数据迁移、网络安全、数据清除等解决方案,并针对企业面临的数据安全风险,提供专业的相关数据安全...

阿里面试:MySQL Binlog有哪些格式?底层原理?优缺点?

binlog的格式也有三种:STATEMENT、ROW、MIXED,下面我详解binlog三种模式@mikechenStatement模式Statement模式:是基于SQL语句的复制(statem...

快速带你读懂MySQL的binlog写入机制

深入讲解MySQL中的重要日志binlog的写入机制以及影响IO性能的关键配置,并且介绍了如何利用binlog去恢复数据,保证MySQL的可靠性。Q:binlog写入时机binlog的写入逻辑并...

MySQL 误删除数据恢复全攻略:基于 Binlog 的实战指南

在MySQL的世界里,二进制日志(Binlog)就是我们的"时光机"。它默默记录着数据库的每一个重要变更,就像一位忠实的史官,为我们在数据灾难中提供最后的救命稻草。本文将带您深入掌握如...

一文了解MySQL Binlog(一文了解肝脏有益和有害的食物)

MySQL的Binlog日志是一种二进制格式的日志,Binlog记录所有的DDL和DML语句(除了数据查询语句SELECT、SHOW等),以Event的形式记录,同时记录语句执行时...

数据丢失?别慌!MySQL备份恢复攻略

想象一下,某个晴朗的午后,你正享受着咖啡,突然接到紧急电话:你的网站或APP彻底挂了!系统崩溃,界面全白。虽然心头一紧,但你或许还能安慰自己:系统崩溃只是暂停服务,数据还在,修复修复就好了。然而,如果...

Mysql中的bin log、redo log、undo log的区别

最近在整理面试题,在看mvcc的时候看到了undolog,今天索性把这三个log都记录一遍。MySQL的逻辑架构说之前先说一下MySQL的基本架构,MySQL主要分为两层:Server层和存储引...

binlog日志定时清理(binlog清理规则)

binlog日志binlog是MySQL数据库的一种日志文件,用于记录所有对数据的修改操作。binlog全称为binarylog,它以二进制格式记录MySQL服务器上所有的修改操作,包括对哪个数据库...

茶水间炸锅了!菜鸟误删用户表,运维老张的MySQL救命三招!

(公司茶水间,运维老张、开发小王和新人小李围着咖啡机)小李:(紧张兮兮)张哥!我...我好像把测试库的用户表删了!下午演示咋办啊?老张:(淡定喝咖啡)慌啥?昨晚的备份是吃干饭的?走,教你恢复!一、基础...

解决运维痛点,提高运维安全性-雷池 SafeLine WAF新功能身份认证

雷池介绍使用雷池SafeLineWAF已经两年多了,在1.5.x版本时就已经开始测试使用,并在推出LTS版本后转入LTS分支。近期雷池SafeLineWAF重点更新了身份认证功能,并提供了SS...

【Docker 新手入门指南】第十五章:常见故障排除

一、前期准备:收集关键信息在排查问题前,建议先获取以下系统数据,便于精准定位故障:1.系统基础信息#查看Docker版本(确认是否为最新稳定版)dockerversion#查看...

取消回复欢迎 发表评论: