为什么删除某些文件这么慢?

为什么删除某些文件这么慢?

在整理一些文件夹时,我发现删除一些文件的速度非常慢:

$ ls -lah a/
-rwxrwxrwx 1 user user    4 Nov 17 12:31 af8048e4aec858a02ac48119545413dd

$ time (rm -v af8048e4aec858a02ac48119545413dd)
removed ‘af8048e4aec858a02ac48119545413dd’

real    0m7.908s
user    0m0.000s
sys     0m0.000s

而删除其他文件如下:

$ touch some_file
$ time (rm -v some_file)

removed ‘some_file’

real    0m0.003s
user    0m0.000s
sys     0m0.000s

我不明白发生了什么。我担心是硬件问题……

欢迎任何帮助并将不胜感激。

谢谢。

答案1

这取决于文件的大小以及删除时文件的碎片程度。

文件越大,占用的磁盘扇区越多,磁盘碎片也越多。FS 表必须删除文件的索引条目,如果要在磁盘上找到该文件,则需要更长的时间。

如果存在驱动程序性能问题或驱动器访问磁盘该部分的问题,这也很重要。

如果驱动器必须将磁盘清零(安全擦除),这也需要时间。我不相信简单的“rm”会执行安全擦除,但我知道它会在数据库服务器上执行此操作,除非禁用。

相关内容