博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么Linux不需要碎片整理?
阅读量:6944 次
发布时间:2019-06-27

本文共 1733 字,大约阅读时间需要 5 分钟。

 如果你是一个 Linux 用户,你可能会听说 Linux 的文件系统不需要碎片整理。你也可能会注意到 Linux 的发行版本也都没有磁盘碎片整理的功能。这是为什么呢?

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

  什么是磁盘碎片?

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

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

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

image510

  当然,对于固态硬盘来说这又有点不一样,固态硬盘不需要移动文件也不需要碎片整理。因为对一个 SSD(固态硬盘)做碎片整理会减少它的寿命。而且,在最新版本的 Windows 系统中,你也不再需要为碎片整理担心,因为 Windows 会自动帮你完成。

  Windows 的文件系统如何工作

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

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

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

image511

  Linux 的文件系统如何工作

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

image512

  因为这样的工作方式,你可能会在你的文件系统塞满之后看到碎片。如果文件系统 95%(甚至 80%)的空间被占用了,你就会开始看到一些碎片。然而,这样的文件系统本来就是设计来在普通使用中减少碎片的。

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

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

 

http://news.cnblogs.com/n/198682/

转载地址:http://sxanl.baihongyu.com/

你可能感兴趣的文章
SQL Server之事务基础知识
查看>>
win7 x64 下VC6的调试程序无法退出的问题
查看>>
VBA之四----给程序自动加行号
查看>>
Windows 下 Nginx + PHP5 的安装与配置
查看>>
在WCF服务中获取客户端的IP地址和端口号
查看>>
【技术贴】所有好友的QQ空间都打不开进不去的超简单解决办法!
查看>>
这种写法用过没:string.Format("{0,-10}", 8)
查看>>
Google Map Logs
查看>>
有关在SharePoint Server中Infopath表单无法呈现的问题及解决方案
查看>>
HDU-1572 下沙小面的(2) DFS
查看>>
Silverlight3.0正式版(Silverlight3_Tools)离线安装
查看>>
[转]23种经典设计模式的java实现_5_职责链模式
查看>>
PL/SQL Developer 9.0.1.1613+注册机
查看>>
微博营销,究竟该怎么做?(实战系列四:活动篇)
查看>>
Firebug中的console tab使用总结
查看>>
java 内部类深度剖析
查看>>
爱♥曲线,单身程序猿福音
查看>>
SEO互帮团真诚奉献:一百多个站长论坛!
查看>>
Zend Studio 9.01汉化破解(图)
查看>>
Sharepoint学习笔记—Ribbon系列-- 1. Ribbon的架构
查看>>