在整理一些文件夹时,我发现删除一些文件的速度非常慢:
$ 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”会执行安全擦除,但我知道它会在数据库服务器上执行此操作,除非禁用。