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.pswp.cn/news/370953.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370953.shtml
英文地址,請注明出處:http://en.pswp.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"); 對于外…