转自:http://zhidao.baidu.com/link?url=qqOjY6ztqMf3ASUUpO6IPy8tLFN2ABgusgQXK9ZOXZb1GCgYtktDFyseUytqn_lTvamP-lkrAYrmJDx4oDhA6q
【机械硬盘结构及数据读写方式】
为了能够全方位的分析问题,首先认识一下机械硬盘的结构以及数据读写方式。当我们给磁盘分区的时候,第一个分区(通常是C盘)在最外圈,第二个分区(D盘)在第一分区内圈,以此类推。需要记住一点,外圈读写速度比内圈快,越往内圈越慢。当系统发出读写指令时,磁盘首先需要寻找数据所在磁道,即寻道,寻道需要时间,磁头到达磁道后,需要等待目标扇区转动到磁头下面,即延迟。这里我们需要记住磁头频繁寻道加上延迟,会导致性能急剧下降。到这里,我们应当认为,程序安装在C盘,系统速度要快一些。但是!我们忽略一个问题,即磁盘碎片。
【磁盘碎片】
当磁盘上没有数据,或者数据较少时,有大量空闲空间来存储数据。当系统要求数据存储时,磁盘会优先选择连续的空间存储数据。当我们删除文件时,原本连续存储数据的区域,就会出现小的空闲空间,这些空间就是所谓的碎片。当系统向磁盘存储一个稍大的文件时,如果没有连续空间了,磁盘就会将文件切割,放到碎片空间中。由于这些碎片空间不连续,就会导致磁盘读写数据时需要频繁寻道,再加上延迟,磁盘读写数据自然就变慢了。当系统盘剩余空间比较小时,碎片数量会急剧增加。将应用程序安装在C盘,提高了系统盘删除增加文件的频率,碎片数量同样会增加,看起来,安装在非系统盘系统盘不易产生碎片,貌似要好一些?我们又忽略了一个问题,程序部署结构!
【程序部署结构】
在过去,程序多数是绿色的。所谓的绿色,就是将程序目录从一个目录移动到另外一个目录,从一个磁盘移动到另外一个磁盘,从一台电脑移动到另外一台电脑,程序仍然能够运行。而且,程序除了在本目录、临时目录产生数据,基本不会在其他地方产生数据。所以将绿色软件安装在非系统盘,可以降低系统盘碎片产生频率和数量,这就是过去将程序安装在非系统盘的主要原因之一。
可是现在不一样了,程序结构比较复杂,多数程序安装后,会在C:\ProgramData、C:\Users\[用户文件夹]\AppData\Roaming、c:\windows\system32、注册表等地方放入文件或者注册信息,而且运行时也会在临时目录等地方生成文件。所以现在的程序安装到非系统盘,就基本上失去降低系统盘碎片数量的意义了。
话又说回来,把程序安装到非系统盘,难道就不会增加非系统盘的碎片数量么。放到非系统盘后,不但增加了非系统盘的碎片数量,再加上非系统盘在内圈且读写速度慢,且不是让程序运行速度更慢了?
所以程序结构以及碎片产生的角度上考虑,程序安装到系统盘要好一些。
另外,我们需要考虑文件系统的问题。
【文件系统】
我们通常说的FAT16、FAT32、NTFS就是文件系统了。文件系统类型不同,磁盘碎片产生的严重程度不同。过去使用的是FAT32文件系统,更早的是FAT16,这两种文件系统相对NTFS来说,更容易产生磁盘碎片,所以过去经常强调“整理碎片”。现在这样说的人比较少了。但并不代表NTFS文件系统不会造成碎片,只是没那么“严重”。因此我们将程序安装在系统盘后,由于使用NTFS文件系统,大大降低碎片导致的系统性能下降问题。
【NCQ技术助阵磁盘数据读写】
有网友使用了电梯的例子来形容磁盘数据读写,非常形象,这里不妨借鉴下。
假设有三个人A、B和C,分别到达3、5和10楼,假设按电梯的顺序是BAC,电梯就会先到5楼,回到3楼,最后到10楼。当然电梯可不是这么干的,但过去的磁盘就是这样的,因此会导致磁盘寻道频率比较高,磁头行程较长。
NCQ(Native Command Queuing全速命令排队)技术的出现,让磁盘也类似现在的电梯一样聪明了,大大降低磁盘寻道频率和行程。尤其是现在的多核CPU、CPU超线程、多线程环境下,体现更为明显。
NCQ技术,同样降低了由于碎片导致的性能下降问题。
所以,碎片问题不再是影响我们将程序安装到系统盘还是非系统盘的重要因素了,安装到磁盘外圈的系统盘有利于提高程序运行速度。所以我们建议将程序安装在系统盘,即C盘。
【总结】
从机械硬盘外圈快内圈慢、文件系统、磁盘碎片这些综合因素考虑,将程序安装在C盘,即系统盘的优势大于非系统盘,所以建议将程序安装到系统盘。
注意:如果你的C盘剩余空间比较小,会急剧降低系统性能,个人经验建议,系统盘剩余空间保持在10G以上。另外,建议机械硬盘的使用者,半把年做个磁盘碎片整理。