linux上删除文件过慢,linux解决rm

您所在的位置:网站首页 1949年10月1日开国大典 linux上删除文件过慢,linux解决rm

linux上删除文件过慢,linux解决rm

#linux上删除文件过慢,linux解决rm | 来源: 网络整理| 查看: 265

在linux上使用rm -rf删除海量文件非常慢,慢到无法等待到结果,慢到无法接受,慢到怀疑生命。先分析一下为什么rm 删除文件慢,然后给出解决方法

1.为什么rm删除大量文件很慢

rm命令大量调用了lstat64和unlink,可以推测删除每个文件前都从文件系统中做过一次lstat操作。过程:正式删除工作的第一阶段,需要通过getdirentries64调用,分批读取目录(每次大约为4K),在内存中建立rm的文件列表;第二阶段,lstat64确定所有文件的状态;第三阶段,通过unlink执行实际删除。这三个阶段都有比较多的系统调用和文件系统操作。

2.使用rsync解决删除慢的问题

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync”算法,可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上。

rsync所做的系统调用很少:没有针对单个文件做lstat和unlink操作。命令执行前期,rsync开启了一片共享内存,通过mmap方式加载目录信息。只做目录同步,不需要针对单个文件做unlink。

rsync删除文件的原理就是把一个空文件夹同步到有很多文件的文件夹

2.1安装rsync 命令

yum install rsync

2.2 rsync删除文件夹

先建立一个空目录

mkdir -p /root/blank

用rsync删除目标目录

rsync --delete-before -d /root/blank



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3