linux 下有个程序每天在 NFS 共享目录(生成一个当天日期的文件夹)下缓存 100 万左右的文件,大小差不多 3-5T ,这个程序处理完成后可以删除,如何在 Linux 下快速删除它们呢。
按照网上的这个同步空目录的方法,差不多耗时 7 个小时。 rsync --delete-before -d -H -O --progress /tmp/empty/ 2026-04-02/
1
yolee599 19 小时 2 分钟前 via Android
试试问 AI 看它怎么说
|
2
Cooky 18 小时 42 分钟前 在 nfs 里放个足够大的镜像文件,客户端直接挂载这个镜像,在镜像里操作小文件,用完了直接重新格式化
|
4
swordsmile OP Linux 下有没有删除上百万文件比较快的对象存储?
|
5
paopjian 15 小时 56 分钟前
内存盘卸载后直接空了, 按上面的思路一个是硬盘分区后直接格式化是不是更快, 我问 G 他说可以用 Loop Device (虚拟镜像文件)
|
6
mrzx 15 小时 55 分钟前 @swordsmile 按照运维的思维是
直接想办法把这个目录单独映射一个分区 然后 umount /dev/sdxx 然后 mkfs.ext4 /dev/sdxx 在重新挂载 这个速度会极快 为什么要删?破坏这个分区不就行了吗 |
7
mrzx 15 小时 54 分钟前
@paopjian ramdisk 没有这么大的...人家 3T 到 5T 当然了,别人有钱是另外回事
而且内存断掉数据就会丢失 如何将 ramdisk 里的数据缓慢的写入到其他存储也是另外个困难了.. |
9
kome 15 小时 43 分钟前 via iPhone
完全释放文件占用,直接删除目录,速度应该是最快的吧。
|
10
mrzx 15 小时 42 分钟前
还有个方法,我做运维用到的
linux 上现在支持 openzfs 很好了 咋办,利用 zfs 文件格式的特性 做元数据分离 搞 2 块高性能固态硬盘独立 SLOG ,所有元数据修改、删除操作先落日志盘, 要搞清楚这种日志文件系统的底层原理,你删文件的时候,其实没有真删除数据, 实际上是删出映射关系罢了 删除百万小文件时,只动 SSD 上的元数据,根本不动存储盘 |
11
caola 15 小时 12 分钟前
问一下 AI 吧,以前我的单个目录也是上百万个小文件,一条命令就很快就解决了
|
12
pckillers 14 小时 59 分钟前
rm -rf 文件夹很慢么?
|
14
realJamespond 14 小时 39 分钟前
有用的拷出来,format
|
15
yulgang 14 小时 32 分钟前
感觉在 S3 存储里按天建桶,用完直接删桶速度更快,不过他的写性能就比较糟糕了。
|
16
ryd994 12 小时 35 分钟前 via Android
@mrzx 元数据不在 SLOG 上。SLOG 仅用于 sync 模式写入的文件。如果没有 SLOG ,那 sync 模式写入的数据会按随机顺序直接写入硬盘,等有空的时候再整理释放。
因为同步写入要求必须落盘后才可以返回完成,这样可以避免阻塞写入的进程。 async 模式写入的文件默认不会使用 SLOG ,会在内存里排序后再落盘。 文件系统结构数据属于 special 。一般建议使用 3 块高性能 SSD RAID1 做 special vdev 。因为 special 比 SLOG 更危险。就算 SLOG 设备损坏,可以强行挂载,只是丢失 SLOG 里的新数据,其他没有写入的文件仍然完好。但是如果 special 设备丢失,整个池就彻底损毁,所以建议至少 3 度冗余。 实际上,SLOG 是最常见的错误用法,除非是跑虚拟机或数据库,否则大部分人不会用到 SLOG 。 其次是 L2ARC ,因为 L2ARC 需要内存 ARC 做索引,使用不当反而会挤占内存。L2ARC 是内存加满之后才需要考虑的选项。 special 是最少人用的。原因也很简单,听起来就很危险。但是它对小文件性能的影响也是最大的。 |
17
ryd994 12 小时 26 分钟前 via Android
@mrzx 另外,如果想用好 zfs 的特性的话,我觉得这事可以这样做:每天新建一个 dataset ,删除的时候直接删 dataset 会比 rm -r 更快。因为 rm -r 或者 rsync 都是穷举所有文件,然后一个一个文件删除。删 dataset 是直接删文件系统索引。
又或者,邪教:checkpoint 。缺点是必须单独一个 zpool 。因为 checkpoint 是整个 zpool 级别的操作,只允许有一个。可以全局回档。本意是对 zpool 进行高风险操作时有一次回档的机会。比如加 vdev 加错了就只能格盘。 |
19
swordsmile OP @ryd994 #17 感谢大神提供的思路。
|
20
CapNemo 7 小时 6 分钟前
能直接从 host 侧下手吗
|