为何Linux不须要碎片整理?

 若是你是一个Linux用户,你可能会据说Linux的文件系统不须要碎片整理。你也可能会注意到Linux的发行版本也都没有磁盘碎片整理的功能。这是为何呢?
node

  要理解为何Linux的文件系统不会想Windows的文件系统同样产生碎片,你首先要明白碎片究竟是如何产生的,还有这两大操做系统的文件系统的工做方式到底有什么不一样。ide

 什么是磁盘碎片?

  不少Windows的用户,甚至包括一些没有经验的用户,都相信定时整理文件系统中的碎片会让他们的电脑运行得更快。但他们都不知道这是为何。性能

  简单来讲,一个硬盘驱动器里面包含了不少扇区,每个扇区均可以存储一小块数据。对于文件,尤为是比较大的文件来讲,他们必需要存储在不少不一样的扇区内。假设你的文件系统中有不少不一样的文件,每个文件都被存储在连续的扇区群中。而后,你对增长了其中某一个文件的大小。文件系统首先会尝试对该文件新增长的部分存储在紧挨着原来的扇区群的某个扇区中。可是若是当中没有足够的连续扇区,这个文件就必需要被分解成多个小块,这些操做对于你来讲都是可见的。当你的硬盘读取这些文件的时候,他的磁头必须在不一样的物理位置间跳转以读取连续的扇区群,这会下降它的速度。操作系统

  碎片整理就是一个经过逐位(位是文件在磁盘中存储的最小单位)移动文件来减小碎片的精密的过程,以此来确保每个文件在硬盘中都是连续存储的。设计


  固然,对于固态硬盘来讲这又有点不同,固态硬盘不须要移动文件也不须要碎片整理。由于对一个SSD(固态硬盘)作碎片整理会减小它的寿命。并且,在最新版本的Windows系统中,你也再也不须要为碎片整理担忧,由于Windows会自动帮你完成。it

 Windows的文件系统如何工做

  从前微软使用的FAT文件系统——最后一次做为默认系统被看到是在Windows 98和ME,尽管这个系统还在USB驱动器中使用——并不可以很好地排列文件。当你在FAT文件系统中保存文件时,它会尽量地将文件排列在磁盘的首部。当你存放下一个文件时,它会将这个文件直接存放在第一个文件的后面,以此类推。因此当文件变大,永远都会有碎片产生,由于文件的旁边已经没有空间来存放增长的部分。class

  微软在Windows XP和2000中使用的较新的NTFS文件系统就尝试变得更聪明一点。这个文件系统会在文件周围放置更多名为”缓冲区“的自由空间,可是,任何一个Windows用户都会告诉你,NTFS文件系统总有一天也会产生碎片的。后台

  由于文件系统这样的表现,他们须要碎片整理来保持性能。微软只能在最新版的Windows系统中经过在后台自动运行碎片整理程序来减轻这个问题。程序

 Linux的文件系统如何工做

  Linux的ext2,ext3,ext4文件系统——ext4是Ubuntu和目前大多发行版所采用的文件系统——会以一种更加智能的方式来放置文件。Linux的文件系统会将文件分散在整个磁盘,在文件之间留有大量的自由空间,而不是像Windows那样将文件一个接一个的放置。当一个文件被编辑了而且变大了,通常都会有足够的自由空间来保存文件。若是碎片真的产生了,文件系统就会尝试在平常使用中将文件移动来减小碎片,因此不须要专门的碎片整理程序。方法


  由于这样的工做方式,你可能会在你的文件系统塞满以后看到碎片。若是文件系统95%(甚至80%)的空间被占用了,你就会开始看到一些碎片。然而,这样的文件系统原本就是设计来在普通使用中减小碎片的。

  若是你真的在Linux上出现了碎片的烦恼,你可能就须要一个更大的硬盘了。若是你真的须要对一个文件系统作碎片整理,最简单的可能也是最可靠的方法就是将全部文件拷贝出来,而后清空原来的分区,再将文件拷贝回去。文件系统就会在你拷贝回去的过程当中智能地将文件放置好。

  你可使用fsck命令来检测一下一个Linux文件系统的碎片化程度,只须要在输出中查看非连续i节点个数(non-contiguous inodes)就能够了。

相关文章
相关标签/搜索