Log*_*pto 2 linux performance filesystems rsync delete
我一直在试图弄清楚如何从安装的 NAS 驱动器中删除数百万个文件。我正在访问它的操作系统是 RHEL 7.6。
该目录正在积极写入,每天有数万或数十万个附加文件。
当我尝试运行删除技术时,例如:
rsync -av --delete empty_dir/ millions_of_files_dir/
Run Code Online (Sandbox Code Playgroud)
它首先会使用大量 CPU/MEM,并带有“发送增量文件列表”消息。这种情况会一直持续下去,CPU/MEM 的使用量会慢慢减少到最低限度。
我的理论是,这是因为文件列表永远不会结束;不断有更多的文件被添加。
SO:是否有一种删除技术在删除之前不需要完整的文件列表,但会在找到它们时“流删除”吗?
使用find带有-delete选项的命令,文件将在找到时被删除,而无需构建完整列表:
find . -type f -delete # deletes all files in the current dir and all subdirs
Run Code Online (Sandbox Code Playgroud)
需要注意的是,大多数 Linux 文件系统在单个目录中处理这么多文件时表现不佳。即使没有构建“完整”列表,仍然需要列出目录的内容,如果它包含数百万个文件,则性能会很差。
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |