我正在寻找一种工具,它可以让我直观地表示我的 ext4 碎片。类似于Defraggler、 Puran Defrag 和许多其他(UltraDefrag 是最好的)显示您的磁盘的方式...(大多数好的 UI 显示您将鼠标悬停在其上的块中的文件)
Linux有什么相关的吗?
我想看看我的磁盘,看看究竟有多“不需要”的碎片整理。
我不想使用 e4defrag,因为我不确定它能告诉我它对我的磁盘到底做了什么。
编辑(2021):这似乎是一个类似的、不太受欢迎的问题,在这个问题出现之前 3 年,使用建议的工具提出了这个问题: https ://unix.stackexchange.com/questions/30743/is-there-a-tool-to -visualize-a-filesystem-allocation-map-on-linux
问题不在于是否存在碎片化。所有文件系统都有一些碎片。
问题是碎片是否足以影响性能。
在 Linux 文件系统上,碎片通常少于 5%,通常为 1% 或 2%,除非磁盘已满 99%。如果磁盘已满,您会看到大量碎片,但在这种情况下,问题是磁盘已满。
所以是的,有 0.2% 的碎片,但这远低于影响性能的 85% 阈值。
请参阅博客文章为什么 Linux 不需要碎片整理?.
在 Windows 上,50% 或更高的碎片率并不少见(我曾见过 200% 以上)。因此windows需要碎片整理工具。
在 Windows 上,他们建议以大约 85% 的阈值进行碎片整理。
看:
所以,归根结底,碎片整理在 Linux 上不是一个大到足以影响性能的问题,所以没有重要的碎片整理工具,你担心它是在浪费时间。
让我们保持简单......
1)如果您使用 EXT4,则无需进行碎片整理,除非您的磁盘已满约 90% 并且处于繁重的 IO(删除、读取、写入)之下。
2)如果您发现自己的磁盘已满 90%,但碎片严重,那么您的问题是(恕我直言)磁盘空间不足,而不是碎片。获得更大的磁盘!
3)如果出于任何正当理由无法获得更大的磁盘,则只需将整个磁盘(或大块)复制到另一个磁盘,然后再复制回来。高级 EXT4 FS 将其连续写回,从而消除了碎片。对于来自 Windows 的转换,这可以使用 Gnome Scheduler 安排为 cron.daily 作业。
最佳解决方案如果您遇到上述第 2 点的问题,请获得更大的磁盘!
不需要在 Linux 系统上进行碎片整理。
这就是为什么可用的碎片整理工具不多的原因。
人们似乎忘记了一个好的现代碎片整理程序不仅是碎片整理程序,而且还是优化程序。硬盘盘片的不同区域以不同的速度读取。越靠近磁盘中心,文件读取越慢。现代碎片整理程序将分析文件使用情况并将经常读取的文件放在盘片的外边缘,而不经常使用的文件移向中心。有些甚至允许将标记为存档的文件拉到尽可能靠近中心的位置。我看到我的 Linux 系统上的大文件被分成了 1000 个段。
我每个月都会在我的服务器上运行碎片整理。我下载种子的临时存储驱动器非常糟糕。
$ xfs_db -r /dev/md6 -c frag
声称 linux 文件系统不需要碎片整理的人只是在重复别人说的话,而且从未真正检查过。
Fragview 可以满足我的需求,甚至更多。
如您所见,如果我单击地图的某个区域,它会显示该区域中有哪些文件,以及它们的碎片化程度。
btrfs filesystem defrag
如果我愿意,我现在可以使用了。使用 BTRFS 文件系统在 Ubuntu 18.04 amd64 上运行。
目前没有易于使用的 GUI 实用程序
如果您在 Linux 上使用 NTFS、ExFAT 或其他没有任何自动碎片整理解决方案的文件系统,您将无法使用繁琐的非直观 CLI 工具。
当前的解决方案是使用 EXT4 或 ZFS,它们会自动为您执行主要工作以保持 HDD 的速度。
只是避免使用超过 90% 的驱动器
如果您使用 SSD,则碎片并不重要,除非文件以某种方式变得碎片化,重定向开始降低性能。
EXT4 可以从 SSD 中识别出 HDD,并且不会通过自动碎片整理破坏您的写入周期。
只要确保你不在 SSD 上使用交换 ;)