SSD性能优化之4K对齐

简介: 【引语】你是否听人说 SSD 买来一定要先对齐,不然平时用起来会很顿。究竟是真有这种说法还是人云亦云呢?请往下看,相信聪明的你会自有判断。


4K对齐是什么?

那么究竟什么是叫做“4K对齐”呢?


4K对齐相关联的是一个叫做“高级格式化”的分区技术。“高级格式化”是国际硬盘设备与材料协会为新型数据结构格式所采用的名称。


随着时代发展,硬盘容量不断扩展,使得之前定义的每个扇区512字节不再是那么的合理,于是将每个扇区512字节改为每个扇区4096 个字节,也就是现在常说的“4K扇区”。随着NTFS成为了标准的硬盘文件系统,其文件系统的默认分配单元大小(簇)也是4096字节,为了使簇与扇区相对应,即使物理硬盘分区与计算机使用的逻辑分区对齐,保证硬盘读写效率,所以就有了“4K对齐”的概念。


SSD为什么需要4K对齐?

固态硬盘SSD的核心是NAND Flash闪存芯片,其寿命主要有闪存芯片的擦除读写次数决定的,出厂之后,这个读写次数是一定的,那么我们要做的就是优化算法,尽量减少读写次数。


4K对齐就是减少固态硬盘读写次数的有效方法


4K对齐之后好处多多,原理比较复杂,打个比方:


SSD就好比一个大仓库,里面由很多小“房间”组成,每个房间的容量都是一样的(4KB的倍数)。每个房间放入货物(文件)的次数是有限制的(10万次)并且每个房间只能放一种货物。


货物的放入和拿出是由管理员(操作系统)来协调解决的。但是无论货物有多大,管理员都会把这些货物分成好多块放入房间。每块的大小都是一样的(XP系统是0.5KB,win7可以自己定)


没有对齐的仓库,最开始的一个房间被管理员占用了一点的,因此很多文件可能同时占用了两个房间。如果要把货物搬出去就相当于两个房间各使用了一次(寿命)。


对齐过后的仓库,货物分成小块的大小和房间大小一样,放进去非常方便,效率大大提高,提高了房间的使用率。


这里是通俗点描述一下,会和SSD实际工作原理会有小小的偏差。


同时大家也可以看出为什么在固态硬盘SSD上推荐使用win7系统,而不使用XP。XP每次放入0.5KB,效率比较低,发挥不了SSD的优势。但是win7系统则不同,ssd的最小单元是多少(现在4kb比较多)。因此4k对齐实际上也可能是8k对齐,16k对齐......


win7可以把货物分成的快调成和最小单元大小相同,优势显而易见,同时win7还可以告诉SSD,那些房间是空的可以用,那些房间不可以用,这样就少走了不少弯路。


如何查询SSD是否4K对齐

方法有二:

其一,利用window自带CMD:

1. 使用快捷键Win+R或点击"开始"-->"运行",

2. 进入CMD界面,输入“fsutil fsinfo ntfsinfo c:”,

从上图可以看到每个扇区的字节数为512B,每个簇字节数为4096B。


其二,利用软件AS SSD Benchmark查看是否4K对齐。

可以看到“31K-BAD”,说明没有4K对齐。

1. 对于新的,未经分区的SSD,可以借助Disk Genius软件来实现4K对齐。

我们可以利用Disk Genius软件直接建立分区。如果你一块硬盘分了多个区,那么每建一个分区,都要按照下面的方法操作一次!否则就会出现第一个分区对齐了,但是其它分区没对齐的现象。


如何实现4K对齐

下面是软件自己检测硬盘


2. 如果已经分区了,可以利用软件paragon alignment tool实现无损4K对齐。


绿色的硬盘表示已经4k对齐,黄色没有4K对齐的硬盘

对齐开始前要进行一下设置,如下图



然后paragon alignment tool软件就会进行全自动对齐

等它自动完成,它完全之后需要重启电脑转移数据,数据越多,硬盘越大,需要的时间越多,请耐心等待。


验证4K对齐的功效
从对比的图可以看到,4K对齐之后,4K读写的速度得到大幅的提升,得分从301直接提升到836.


相关文章
|
2月前
|
编译器 Linux C语言
C++新特性“CPU优化对齐”
C++新特性“CPU优化对齐”
|
7天前
|
存储 缓存 JavaScript
性能优化:通用快照方案
本文我们将探讨快照技术如何增强页面性能和用户体验,如何在业务中集成快照方案,以及我们的通用快照解决方案的技术细节。
|
14天前
|
移动开发 监控 前端开发
构建高效Android应用:从内存优化到性能提升
【4月更文挑战第11天】在移动开发领域,一个流畅、高效的应用与用户体验息息相关。尤其对于安卓平台,设备的多样性和碎片化为开发者带来了额外的挑战。本文将探讨一系列针对Android应用的优化策略,从内存管理的最佳实践到布局优化,以及如何利用最新的Android框架特性来提升应用性能。我们将深入了解如何诊断性能瓶颈,并采用切实可行的技术手段进行调优,旨在帮助开发者构建出更加健壮、快速且响应灵敏的应用。
9 0
|
18天前
|
移动开发 Java Android开发
构建高效的Android应用:从内存优化到性能提升
【4月更文挑战第7天】 在移动开发领域,尤其是针对资源受限的Android设备,应用的性能和稳定性是决定用户满意度的关键因素。本文深入探讨了Android应用开发中如何通过内存优化、多线程处理以及电池使用效率的提升来增强应用的整体性能。我们将透过具体案例分析和最佳实践的分享,指导开发者避免常见的性能陷阱,打造更流畅、响应更快的Android应用。
|
5月前
|
存储 缓存 NoSQL
Linux内存性能优化总结,让你的系统更加高效!(下)
Linux内存性能优化总结,让你的系统更加高效!
|
5月前
|
存储 缓存 Linux
Linux内存性能优化总结,让你的系统更加高效!(上)
Linux内存性能优化总结,让你的系统更加高效!
|
8月前
|
存储 编译器 C语言
性能优化特性之:LTO
本文介绍了倚天实例上的编译优化特性:LTO,并从优化原理、使用方法进行了详细阐述。
|
8月前
|
编译器 C++ Anolis
性能优化特性之:PGO
本文介绍了倚天实例上的编译优化特性:PGO,并从优化原理、使用方法进行了详细阐述。
|
9月前
|
Web App开发 Java Linux
【性能优化】使用Perfetto定位应用启动性能的瓶颈
本篇文章将会结合我个人对Perfetto的实际使用经历,讲解车载应用的启动时间是如何测量得到的,测量出启动时间后,我们又该如何找出其中的性能瓶颈。
844 1
【性能优化】使用Perfetto定位应用启动性能的瓶颈
|
SQL 关系型数据库 数据库
案例8:IOPS 100%场景优化 | 学习笔记
简介:快速学习案例8:IOPS 100%场景优化
154 0