若是您正在使用或者准备购买固态硬盘(SSD),确定会其已经有了必定的了解。因为固态硬盘的结构和机械硬盘有本质的不一样,固态硬盘要实现真正的性能发挥须要TRIM指令等一些特殊的手段。不过大多数人并不知道,或者并无注意的是,除了某些较新的固态硬盘之外,分区以及格式化对于固态硬盘也有着极其重要的影响。若是您只是简单地用XP或者其余一些较老的工具对固态硬盘进行分区和格式化的话,获得的性能可能会只有几分之一! 注:Intel的固态硬盘在控制器层面上对这个问题进行了自动补偿,所以若是您使用的是Intel的固态硬盘的话,能够跳过本文了。工具
##一. 问题的根源性能
问题的根源要从固态硬盘的组成部分,闪存提及。目前的绝大多数闪存的组织结构是划分红不少个512KB的块(Block),而每一个块又由不少以4KB为单位的页(Page)组成。这就好像我国的行政组织是划分红众多个省,每一个省又划分红不少个市同样。闪存的工做原理决定了它的擦除操做是以块(Block)为单位,而写入操做则是以页(Page)为最小单位。本站的固态硬盘技术专题可让您更多地了解固态硬盘以及闪存。 另外一方面,咱们的操做系统在管理硬盘时也有一个最小分配单元。NTFS的默认的最小分配单元的大小刚好也是4KB,这很不错。不过问题在于,在进行分区时一般并非从头开始的,而是有一个偏移值。好比使用Windows XP的分区工具的话,这个偏移值会让分区从一页的中部开始。也就是说,操做系统的最小分配单元和固态硬盘的页之间错位了。这样致使的结果就是,操做系统每次写一个4KB的数据,在实际运行时都有会两次写操做。理想的状况应该是,操做系统的每一个最小分配单元都刚好和闪存的一个页对应起来,这样操做系统每次写一个4KB的数据,只须要实际的一次写操做就能够完成。二者之间的性能差距最多可能能够达到两倍! 若是分区时没有对齐,并且格式化时又没有使用4KB做为最小分配单元的话,性能损失可能更大。在国外著名网站Anandtech的测试中,对某顶级固态硬盘使用FAT进行格式话,并且分区时也没有对齐,结果4KB文件的写入性能极其糟糕。换成对齐分区以及4KB的最小分配单元之后,4KB文件的写入性能几乎达到了以前的10倍!测试
##二. 如何正确地分区和格式化优化
这个问题的解决方法其实简单得很,那就是使用Windows7的分区工具来对您的固态硬盘进行分区,而后在格式化时使用4KB(4096B)做为分配单位大小便可。微软早已认识到固态硬盘须要操做系统的良好支持,因此在Windows7中加入了TRIM指令和分区对齐等针对固态硬盘的优化。使用固态硬盘的话,Windows7是目前最佳的操做系统选择。 可是若是没有Windows7怎么办呢?在XP和Vista下面,固然仍是有办法的,并且并不算复杂。固然,这涉及到从新分区,因此若是您的固态硬盘里面已经有数据的话,会所有丢失,因此须要作好备份。另外,您还须要准备好一个装好系统的电脑。固然,这很简单,先把系统装在另外一个硬盘便可,大多数使用固态硬盘的朋友应该都有不仅一个硬盘吧? 这个操做能够经过一个免费的工具软件Diskpar.exe来完成,您能够经过微软的官方网站下载到这个软件 把固态硬盘链接到这个PC上,而后进入控制面板,在管理工具->计算机管理->磁盘管理中,找到您的固态硬盘当前是几号盘。好比当前您的电脑中有两块硬盘的话,固态硬盘多是1号盘。记下这个号码。另外,把全部分区都删除,进行以前请备份好数据。 在开始->运行中,键入CMD。在跳出来的命令行窗口中,来到您放置diskpar.exe的文件夹。首先您能够经过diskpar来再次判断一下这个号码是否是正确的。键入diskpar -i 1。(注:这里面的1应根据您在前面看到的数值来输入。),回车后diskpar会输出相似下面的信息: ---- Drive 1 Geometry Infomation ---- Cylinders = 4139 TracksPerCylinder = 240 SectorsPerTrack = 63 BytesPerSector = 512 DiskSize = 32041820160 (Bytes) = 30557 (MB) 最后一行显示的是硬盘的大小,好比例子中的30557(MB)是个30G的硬盘。若是您的结果算出来和您的硬盘大小不一样,请再次到控制面板中确认硬盘号。若是没法确认硬盘号的话,最好就此打住,否则您可能会擦除掉电脑中其余硬盘的数据。 键入diskpar -s 1,这时会有以下显示: Set partition can only be done on a raw drive. You can use Disk Manager to delete all existing partitions Are you sure drive 1 is a raw device without any partition? (Y/N) 请确认您以前已经删除这个固态硬盘上的全部分区,按下Y。 ---- Drive 1 Geometry Infomation ---- Cylinders = 4139 TracksPerCylinder = 240 SectorsPerTrack = 63 BytesPerSector = 512 DiskSize = 32041820160 (Bytes) = 30557 (MB) We are going to set the new disk partition. All data on this drive will be lost. continue (Y/N)? Diskpar会显示出硬盘信息之后,警告说硬盘上全部数据将会丢失,再次按下Y。 Please specify starting offset (in sectors): 这里让您能够设置前面提到的偏移值,请输入128,而后回车。 Please specify partition length (in MB) (Max = 30557): 这里让您指定分区大小,假如您就分一个区的话,就直接输入硬盘的容量。 Done setting partition. ---- New Partition information ---- StatringOffset = 65536 PartitionLength = 32041304064 HiddenSectors = 128 PartitionNumber = 1 PartitionType = 7 You now should use Disk Manager to format this partition 到这里,分区就完成了!您只须要到前面提到的控制面板中的磁盘管理中对分区进行格式化就能够了。记得分配单位大小选择4096!网站
##三. 验证this
若是您手里的固态硬盘已经使用了一段时间,只是想知道是否是对齐了,或者您按照上述方法进行了操做,可是对操做过程不够放心,怕出什么错,有一个简便的方法让您验证您的固态硬盘的分区是否是对齐了。 在开始->运行中,键入msinfo32。回车后跳出一个系统信息的窗口,选择组件->存储->磁盘,这里会列出您的电脑中的全部硬盘的信息。找到固态硬盘,而后看它的分区起始偏移的值是否是4096的整数倍。若是不是的话,您的固态硬盘的性能还有很大的提高余地哦!操作系统