linux rsync删文件速度,为什么用rsync删除大量文件的时候比用rm快

为什么用rsync删除大量文件的时候比用rm快

今天研究怎么在Linux下快速删除大量文件,

搜到很多人都说可以用rsync来删除大量文件,

速度比rm要快很多,但是没有人说为什么,

仔细研究了一下原因,总结起来大概就是,一个是列出文件的时候,

在文件非常多的时候会导致慢, 另外就是删除导致B树rebanlance导致开销

rsync减少了这种开销,所以速度比rm要快

==转===========

rm on a directory with millions of files

When a directory needs to be listed readdir() is called on the

directory which yields a list of files. readdir is a posix call,

but the real linux system call being used here is called

'getdents'. Getdents list directory entries by filling a buffer is

entries.

The problem is mainly down to the fact that that readdir()

uses a fixed buffer size of 32Kb to fetch files. As a directory

gets larger and larger (the size increases as files are added) ext3

gets slower and slower to fetch entries and additional readdir's

32Kb buffer size is only sufficient to include a fraction of the

entries in the directory. This causes readdir to loop over and over

and invoke the expensive system call over and over.

。。。。

I revisited this today, because most filesystems store their

directory structures in a btree format, the order of which you

delete files is also important. One needs to avoid rebalancing the

btree when you perform the unlink.

As such I added a sort before deletes occur. The program will

now (on my system) delete 1000000 files in 43 seconds. The closest

program to this was rsync -a --delete which took 60 seconds (which

also does deletions in-order, too but does not perform an efficient

directory lookup).

Efficiently delete large directory containing thousands of

files

linux-快速删除五十万+文件的方法

linux下面快速删除大量文件及快速复制大量小文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于源码,反码,补码(正数--负数)---------(-128)自己的理解

以一个字节为例 1、无符号位,一个字节可以存放0~255共256个数字;有符号位存放-128~127共256个数字; 2、无符号全都表示为正数;有符号位则首位表示正负数,正数首位为0,负数首位为1(因此在判断一个…

英特尔x722网卡驱动_产品详情 | 从核心到边缘,英特尔加速5G网络基础设施建设...

英特尔近期宣布推出无可比拟的5G基础设施芯片产品组合,包括一款面向无线基站的10纳米片上系统(SoC)英特尔凌动P5900,和一款面向5G网络处理的结构化ASIC,一款针对5G网络优化、提供基于GPS的高精度网络服务同步功能的以太网适配器。此外&#x…

canvas离屏技术与放大镜实现

教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步>>> (原文)canvas 离屏技术与放大镜实现。 更多讨论或者错误提交,也请移步。 利用canvas除了可以实现滤镜,还可以利用离屏技术放大镜功能。为了方…

虚拟机下安装ubuntu后root密码设置

问题描述: 在虚拟机下安装了ubuntu中要输入用户名,一般情况下大家都会输入一个自己的网名或绰号之类的,密码也在这时设置过了。 但是当安装成功之后,使用命令#su root,然后输入刚才设置的密码,发现密码错误…

使用Ajax的Spring MVC REST调用

这篇文章提供了对Spring MVC Web应用程序的REST调用的简单示例。 它基于在Spring MVC上下文示例中使用Spring MVC服务静态资源和使用Ajax获取JSON 。 该代码可在GitHub的Spring-REST-With-Ajax目录中找到。 主页 我们的主页包含与执行Ajax调用的Javascript函数链接的四个按钮…

团队作业—预则立他山之石

团队作业—预则立&&他山之石 Deadline: 2017.10.24 22:00pm 作业要求 一、确立团队选题,建立和初步熟悉团队git的协作方式。项目后续的代码、文档都要通过github增量式管理。实现文档的版本化和增量式管理。 二、初步确立团队任务计划,将团队的任…

linux7系统如何配置网卡,Linux 7 配置网卡(nmcli)

操作系统版本:[rootcjcos01 network-scripts]# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 7.5 (Maipo)查看网卡、IP等信息:[rootcjcos01 ~]# ifconfigenp0s3: flags4163 mtu 1500inet 192.168.1.90 netmask 255.255.255.0 bro…

学以致用深入浅出数字信号处理 pdf_数字阵列雷达--相控阵专题讲座之三

数字阵列雷达-相控阵专题讲座之三https://www.zhihu.com/video/1218562626877583360从名词上看,数字阵列雷达,肯定是阵列雷达了,那么数字阵列与传统的相控阵雷达又有什么区别呢?传统的相控阵雷达,是依靠移相器、衰减器…

Ubuntu中右击出现终端

1 root用户 $sudo apt-get install nautilus-open-terminal 2重启 3ok 转载于:https://www.cnblogs.com/lanjianhappy/p/6761599.html

MapReduce:处理数据密集型文本处理–局部聚合第二部分

这篇文章继续进行有关使用MapReduce进行数据密集型处理的书中实现算法的系列文章。 第一部分可以在这里找到。 在上一篇文章中,我们讨论了使用本地聚合技术来减少通过网络进行混洗和传输的数据量的方法。 减少传输的数据量是提高MapReduce作业效率的主要方法之一。 …

python爬虫需要什么知识-学习Python爬虫技术,需要掌握哪些web端的知识?

HTML5:html概述和基本结构、html标题标签、html段落标签、换行标签、块标签、图片标签、a链接标签、列表标签、表格、表单、页面布局等。 CSS3:CSS基本语法和页面引用、CSS文本设置、颜色表示法、CSS选择器、盒子模型、盒子模型实际尺寸、浮动、四大定位…

UDP学习总结

1、UDP的优势是什么?有哪些典型的应用是使用UDP的?为什么? 2、转载于:https://www.cnblogs.com/zhouhaibing/p/7669251.html

Linux版本的SVN客户端,linux 下安装 subversion(svn) 客户端

svn server 为只支持http://协议的windows;test web server 为as4,现需安装svn客户端方便同步代码网上找了下都是讲如何安装svn server的,我只需要一个支持http协议的客户端哈,不想装apache。安装所需软件apr,apr-util,sqlite,neon,subversion1.下载软件…

使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js

前言:前端小白一枚,刚注册博客,先发个学习过程中新碰到小问题试试水吧~ 摘要:最近在学习bootstrap,偶然碰到了一个小问题,bootstrap网站也没有做过多的解释,今天分享给大家。 问题描述&#x…

C#中的三层

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的…

研究僵局–第3部分

在本系列的前两个博客( 第1部分和第2部分)中 ,我演示了如何创建一段死锁的不良代码,然后使用该代码展示了进行线程转储的三种方式。 在这个博客中,我将分析线程转储以找出错误的原因。 下面的讨论同时涉及本系列第1部…

qq2009显ip版怎么用_毛孔粗大怎么破?用对方法,轻松改善显皮肤嫩滑

脸上毛孔粗大怎么破?超级烦恼尤其是一到秋季脸上经常油腻腻的为什么会毛孔粗大呢?毛孔粗大怎么破?用对方法,轻松改善显皮肤嫩滑 当皮肤老旧角质积聚越多,会使肌肤变厚、变粗糙,毛孔变粗大,肌肤也…

linux 账号密码 字段,详解Linux中的用户密码管理命令passwd和change

passwd修改用户密码参数-k 保持未过期身份验证令牌-l 关闭账号密码。效果相当于usermod -L,只有root才有权使用此项。-u 恢复账号密码。效果相当于usermod -U,同样只有root才有权使用。-g 修改组密码。gpasswd的等效命令。-f 更改由finger命令访问的用户…

hello程序的运行过程-从计算机系统角度

hello程序的运行过程-从计算机系统角度 1、gcc编译器驱动程序读取源程序文件hello.c,并将它翻译成一个可执行目标文件hello。翻译过程分为四个阶段:预处理阶段,编译阶段,汇编阶段,链接阶段。 2、初始时,she…

靠谱的div引入任何外链内容

靠谱的div引入任何外链内容 开发中经常要在div中引入一个页面,该页面可能是内部页面,可能是一个外部页面,也可能只是一个域名获取的请求. 对于内部页面的加载,建议使用jquery的load函数,如: 1 $("#targetId").load("someUrl/templatePage.html"); 对于外…