国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Linux下清理大批量文件最佳實踐

系統 Linux
定期清理過期文件和垃圾文件,維持文件系統合理的空間使用率,是一個系統管理員的日常工作。如果確定哪些文件需要被清理,怎樣清理大批量文件,怎樣確保清理性能,都是系統管理員需要解決的難題。本文探討了 Linux 下大批量文件自動清理的相關命令和方法,以及實際操作中的最佳實踐。

系統管理員的手中,管理著企業最有價值的資產——數據;而占據企業級服務器操作系統市場半壁江山的 Linux,更是讓 Linux 系統管理員成為最重要的資產管理員。管理員的職責,就是讓有限的 IT 資源,存儲最有價值的數據。1991 年 IBM 推出 3.5 英寸 1GB 硬盤的時候,管理員洞悉硬盤上的每個文件,人工就可以實現文件管理;而今天 PB 級的存儲設備,則給文件管理帶來了***的挑戰。

文件刪除操作,用過 Linux 的人都應該可以完成。那么以下這些文件刪除操作,你能完成哪些?

  1. 刪除整個文件系統中以特定后綴結尾的文件
  2. 在一個有 1 百萬的文件系統中刪除某個指定文件
  3. 從一個***的文件系統里,刪除指定日期創建的 10 萬個文件
  4. 在億級文件系統里,每天執行文件系統清理,刪除 1 年前產生的上百萬文件

下面要討論就是如何實現以上文件刪除操作的策略和方法,如果以上操作對你來說輕而易舉,可以忽略本文。

對于清理文件系統而言,我們可以簡單的把清理任務分成兩大類,清理過期文件和清理垃圾文件。

  • 過期文件

    任何數據都有自己的生命周期,數據的生命周期曲線告訴我們,數據在產生和產生之后的一段時間內的價值***,然后數據價值隨著時間衰減。當數據生命周期結束時,就應該刪除這些過期文件,將存儲空間釋放出來留給有價值的數據。

  • 垃圾文件

    系統運行過程中,會產生各種各樣的臨時文件,些應用程序運行時的臨時文件,系統錯誤產生的 Trace 文件,Core Dump 等等,在這些文件被處理后,就失去了保留價值,這些文件可以統稱為垃圾文件。及時清理垃圾文件,有助于系統維護和管理,保證系統穩定有效的運行。

文件自動清理的概述

文件自動清理的特點與方法

在指定絕對路徑下刪除一個文件,rm 就可以實現;如果只知道文件名,不知道路徑,我們可以通過 `find` 找到它,然后刪除。推而廣之,如果我們可以根據預設的條件找到指定文件,我們就可以實施刪除操作。這也就是文件自動清理的基本思路,根據預設條件生成待刪除文件列表,然后執行定期清除任務實施刪除操作。

對于過期文件而言,他們共同標志是時間戳,根據不同的文件系統,可能是文件創建時間,訪問時間,過期時間等不同的時間屬性。由于過期文件大多存在于歸檔系統上,這類文件的特點是數量巨大,對于大型系統而言,每天的過期文件數量都可能達到數十萬甚至百萬的數量級。對于如此規模的文件數量,掃描文件系統,生成文件列表就需要大量的時間,所以文件清理性能是此類人物不得不考慮的問題。

對于垃圾文件而言,有可能會是存放在特定目錄下的文件,也有可能是是以特殊后綴名結尾的文件,還有可能是因為系統錯誤產生的 0 尺寸或者超大尺寸的文件,對于這些文件而言,文件數量一般不大,但是種類比較繁多,情況比較復雜,需要根據系統管理員的經驗,制定比較細致的文件查詢條件,定期掃描,生成文件列表,然后進行進一步處理。

相關 Linux 命令簡介

常用的文件系統管理命令包括 `ls`,`rm`,`find` 等等。鑒于這些命令都是常見的系統管理命令,在此不做贅述,詳細用法請參見命令幫助或者 Linux 使用手冊。由于大規模文件系統一般都存儲在專用的文件系統上,這些文件系統都提供了獨有的命令進行文件系統管理。本文實踐章節以 IBM 的 GPFS 文件系統舉例,以下簡要介紹 GPFS 的若干文件系統管理命令。

  • mmlsattr

    此命令主要用于查看 GPFS 文件系統中文件的擴展屬性,如存儲池信息,過期時間等屬性。

  • mmapplypolicy

    GPFS 采用策略對文件進行管理,此命令可以根據用戶定義的策略文件,對 GPFS 文件系統執行各種操作,具有非常高的效率。

#p#

大批量文件自動清理的難點

Linux 文件刪除機制

Linux 是通過 link 的數量來控制文件刪除,只有當一個文件不存在任何 link 的時候,這個文件才會被刪除。每個文件都有 2 個 link 計數器—— i_count 和 i_nlink。i_count 的意義是當前使用者的數量,i_nlink 的意義是介質連接的數量;或者可以理解為 i_count 是內存引用計數器,i_nlink 是硬盤引用計數器。再換句話說,當文件被某個進程引用時,i_count 就會增加;當創建文件的軟連接或者硬連接的時候,i_nlink 就會增加。

對于 rm 而言,就是減少 i_nlink。這里就出現一個問題,如果一個文件正在被某個進程調用,而用戶卻執行 rm 操作把文件刪除了,會出現什么結果呢?當用戶執行 rm 操作后,ls 或者其他文件管理命令不再能夠找到這個文件,但是進程卻依然在繼續正常執行,依然能夠從文件中正確的讀取內容。這是因為,`rm` 操作只是將 i_nlink 置為 0 了;由于文件被進程飲用的緣故,i_count 不為 0,所以系統沒有真正刪除這個文件。i_nlink 是文件刪除的充分條件,而 i_count 才是文件刪除的必要條件。

對于單個文件刪除而言,我們可能完全不需要關心這個機制,但是對于大批量文件刪除,這卻是一個非常重要的因素,請允許我在隨后章節中詳細闡述,此處請先記下 Linux 的文件刪除機制。

生成待刪除列表

當一個文件夾下面有 10 個文件的時候,`ls` 可以一目了然,甚至可以用 `ls – alt` 查看所有文件的詳細屬性;當文件變成 100 個的時候,`ls` 可能只能看一看文件名了;文件數量上漲到 1000,多翻幾頁可能還能接受;如果是 10,000 呢? `ls` 可能需要等上半天才能有結果;再擴展成 100,000 的時候,絕大多數系統可能都沒有反應,或者“Argument list too long”了。不止是 `ls` 會遇到這樣的問題,其它的常用 Linux 系統管理命令都會遇到類似的問題,Shell 有參數來限制命令的長度。就算我們可以通過修改 Shell 參數來擴展命令長度,但這并不能提高命令的執行效率。對一個超大規模的文件系統而言,等待 `ls` 和 `find` 等常用文件管理命令的返回的時間是不可接受的.

那么我們如何能夠在更大數量級的文件系統上生成刪除文件列表呢?一個高性能的文件系統索引是一個好方法,不過高性能的文件索引是少數人的專利(這也解釋了為什么 google 和 baidu 能這么賺錢)。好在如此規模的文件系統一般都只存在于高性能文件系統里面,這些文件系統都提供了非常強大的文件管理功能。譬如前面提到的 IBM 通用并行文件系統(GPFS)的 mmapplypolicy,通過直接掃描 inode 來快速掃描整個文件系統,并能夠根據指定條件返回文件列表。下面演示如何根據時間戳和文件類型來獲取文件列表

死鎖對文件刪除性能的影響

對于一個每天定時執行文件刪除任務系統,首先生成待刪除文件,然后把該列表作為輸入執行刪除操作;如果某天待刪除列表特別大,導致***天的刪除任務還沒有完成,第二天的刪除任務就啟動了,會有什么結果呢?

***天還沒有來得及被刪除的文件會出現在第二天的刪除文件列表中,然后第二天的文件刪除進程會把它做為輸出執行刪除操作。此時,***天的刪除進程和第二天的刪除都會嘗試去刪除相同的文件,系統拋出大量的 unlink 失敗的錯誤,刪除性能會受到很大的影響。刪除性能的下降,會導致第二天的文件依然沒有被刪除,第三天的刪除進程會加劇刪除文件的死鎖,進入刪除性能下降的惡性循環。

如果簡單的刪除***天生成的待刪除列表,能夠解決上述問題嗎?不能。如前文所述的 Linux 文件刪除機制,刪除***天的文件列表文件只能把該文件的 i_nlink 清零,當***天的文件刪除進程沒有結束的時候,該文件的 i_count 就不為零,因而該文件不會被刪除。直到該進程處理完列表中的所有文件,進程退出,***天的待刪除列表文件才真正被刪除了。

我們至少需要在新的文件刪除進程啟動以前,把系統中其它的文件刪除進程終止,才能保證不會發生刪除死鎖的情況。但是這樣做,依然存在一些弊端。考慮到極端情況下,如果連續一段時間刪除進程都無法在一個周期內完成刪除任務,那么待刪除列表就會不斷增長,文件掃描時間會延長,進而擠占文件刪除進程的工作時間,陷入另外一個惡性循環。

而且實戰經驗告訴我們,當刪除列表特別巨大時,刪除進程的工作性能也有所下降。而一個適當大小的參數輸入文件,能夠保證進程有效執行。所以,按照固定尺寸將待刪除列表文件分割成一系列文件,能夠讓刪除操作穩定高效的執行。而且,在存儲和主機性能允許的前提下,分割為多個文件還可以允許我們并發執行多個刪除進程。

#p#

大批量文件自動清理的***實踐

GPFS 文件系統下大規模額外年間自動清理的***實踐

以下是在一個***的 GPFS 文件系統上進行的文件自動清理實踐:硬件環境為兩臺 IBMx3650 服務器和存儲容量為 50TB 的 DS4200 磁盤陣列,安裝了 Linux 操作系統和 GPFS v3.2。目標是每天 2:00AM 執行文件清理操作,刪除 30 天以前的文件和所有以 tmp 為結尾的文件。

mmapplypolicy 掃描結果顯示該系統上有 323,784,950 個文件,158,696 個文件夾。

 .............
[I] Directories scan: 323784950 files, 158696 directories,
0 other objects, 0 'skipped' files and/or errors.
............. 

定義查找規則如下,保存為 trash_rule.txt

 

 RULE EXTERNAL LIST 'trash_list' EXEC ''
 RULE 'exp_scan_rule' LIST 'trash_list' FOR FILESET('data') 
 WHERE DAYS(CURRENT_TIMESTAMP) – DAYS(ACCESS_TIME) > 30  
 RULE 'tmp_scan_rule' LIST 'trash_list' FOR FILESET('data') WHERE NAME LIKE '%.tmp'

執行 mmapplypolicy 并配合 grep 和 awk 命令生成待刪除文件完整列表,再用 split 命令將完整列表分割為每個列表包含 10,000 個文件的子列表:

 

 mmapplypolicy /data – P trash_rule.txt – L 3 | grep  
 “/data” |awk ‘ {pint $1} ’ > trash.lst 
 split – a 4 – C 10000 – d trash.lst trash_split_ 

執行以下命令進行刪除操作:

 for a in `ls trash_splict_*` 
 do 
	 rm `cat $a` 
 done 

將上述操作保存為 trash_clear.sh,然后定義 crontab 任務如下:

 

 0 2 * * *   /path/trash_clear.sh 

手動執行刪除任務,待刪除文件掃描結果如下:

 [I] GPFS Policy Decisions and File Choice Totals: 
 Chose to migrate 0KB: 0 of 0 candidates; 
 Chose to premigrate 0KB: 0 candidates; 
 Already co-managed 0KB: 0 candidates; 
 Chose to delete 0KB: 0 of 0 candidates; 
 Chose to list 1543192KB: 1752274 of 1752274 candidates; 
 0KB of chosen data is illplaced or illreplicated; 

在文件刪除過程中,我們可以采用以下命令計算每分鐘文件刪除數量。從下面的輸出可以得出,文件刪除速度為 1546 文件每分鐘:

 df – i /data;sleep 60;df – i   /data 
 Filesystem     Inodes   	 IUsed   	 IFree 		 IUse% Mounted on 
 /dev/data       2147483584 322465937 1825017647   16% /data 
 Filesystem     Inodes   	 IUsed   	 IFree 		 IUse% Mounted on 
 /dev/data       2147483584 322467483 1825016101   16% /data 

通過 `time` 命令對文件刪除操作進行計時,從輸出結果可以看出,本次文件刪除操作一共耗時 1168 分鐘(19.5 小時):

 time trash_clear.sh 

 real 		 1168m0.158s 
 user 		  57m0.168s 
 sys 		   2m0.056s 

當然,對于 GPFS 文件系統而言,文件系統本身還提供了其他的文件清理方法,譬如可以通過 mmapplypolicy 來執行文件刪除操作,通過這種方法,有可能實現更加高效的文件清理任務。本文的目的在于討論一種通用的大規模文件清理方法,在此就不對基于文件系統所提供功能的文件清理操作做進一步討論了,感興趣的讀者可以嘗試一下。

【編輯推薦】

  1. Linux批量安裝 五大開源軟件挨個看
  2. 五種方法實現Linux批量重命名文件
  3. Linux系統下批量替換文件內容
責任編輯:yangsai 來源: IBMDW
相關推薦

2020-11-02 09:53:13

Hive數據算法

2021-06-28 10:25:47

MySQL數據庫重復數據

2021-09-14 13:15:43

MySQL數據庫腳本

2010-04-26 14:52:05

Oracle大批量數據

2018-08-09 08:59:56

數據庫MySQL性能優化

2010-07-16 09:57:44

SQL Server

2020-12-18 10:40:00

ExcelJava代碼

2015-04-28 09:12:10

云計算軟件無序

2010-09-25 10:47:40

Linux文件系統Tripwire

2013-04-17 09:17:37

Linux文件系統系統清理工具

2019-11-22 10:24:17

開源技術 趨勢

2022-10-25 12:11:13

2025-02-06 09:47:33

2010-05-10 10:59:06

日立JP1新版本V9

2018-08-28 07:30:50

云安全云服務多云

2009-09-25 11:34:54

Hibernate處理Hibernate批量

2009-09-11 08:47:03

Linux系統批量替換文件Linux

2021-12-09 10:17:25

部署實戰Linux

2011-01-13 14:54:41

Linux文件清理

2023-02-20 14:59:42

模型訓練
點贊
收藏

51CTO技術棧公眾號

天天久久综合| 欧洲精品在线观看| 久久99精品国产99久久| 免费不卡中文字幕在线| 日韩在线www| 伦理av在线| 欧美日韩一区二区在线观看视频| 亚洲夫妻av| 亚洲一区影音先锋| bt电影在线| 欧美韩国日本一区| 久久久久久三级| 久久这里只精品最新地址| 国产色一区二区三区| 性欧美高清come| 91成人在线播放| 精品国产影院| 天天操综合网| 国产精品天天摸av网| 51久久夜色精品国产麻豆| 欧美激情videoshd| 黑人极品videos精品欧美裸| 永久免费网站在线| 亚洲欧美另类久久久精品2019| www.四虎成人| 黄页网站大全一区二区| 川上优av一区二区线观看| 欧美在线电影| 麻豆一区区三区四区产品精品蜜桃| 久久动漫网址| 日韩欧美一卡二卡| 久久99久久| 午夜精品久久久久久久久| 午夜刺激在线| 欧美日韩激情网| a级片在线免费观看| 日韩精品免费视频| av人人综合网| 日韩高清专区| 欧美日韩在线一二三| 日韩一区二区三免费高清在线观看| 久久另类ts人妖一区二区| 亚洲视频播放| 91一区二区三区在线观看| 国产精品无码av在线播放| 91美女精品福利| 四虎精品一区二区永久在线观看| 国产精品福利在线播放| 亚洲欧美日韩国产中文| 国产一区二区三区站长工具| 亚洲精品偷拍视频| 亚洲影院一区| 亚洲老头同性xxxxx| 日韩少妇视频| 久久精品主播| 永久免费网站视频在线观看| 26uuu另类欧美| 手机福利视频欧美| 欧美日韩国产片| 国产精品久久久久久吹潮| 5566日本婷婷色中文字幕97| 亚洲每日更新| a√天堂在线观看| 欧美性猛交丰臀xxxxx网站| heyzo中文字幕在线| 欧美高清激情视频| 欧美一区在线看| 成人黄色大片网站| 一区二区三区免费| 手机在线观看av网站| 国产成人精品电影| 麻豆精品视频在线观看视频| 九九热精品在线播放| 欧美精品在线视频| 成人盗摄视频| 神马影院午夜我不卡| 亚洲婷婷国产精品电影人久久| gogo在线观看| 日韩美女免费视频| 国产精品一区二区91| 在线看片你懂得| 日韩最新av在线| 99精品99| 男女激情网站| 中文字幕亚洲欧美一区二区三区 | 麻豆国产精品官网| 成人满18在线观看网站免费| 欧美一卡二卡在线| 国产探花在线精品| 男人天堂av片| 91精品久久久久久蜜臀| 久久精品福利| 在线观看国产一区| 在线视频你懂得一区| 卡一精品卡二卡三网站乱码| 51xx午夜影福利| 日韩视频免费直播| 狠狠爱成人网| 黑料吃瓜在线观看| 91精品国产高清久久久久久久久| 国产在线播精品第三| 最新av网站在线观看| 国产精品永久在线| 中文字幕日韩av资源站| av在线日韩| 一区二区精品在线观看| 欧洲一区在线观看| 99久久精品费精品国产| 欧美第一页浮力影院| 在线观看成人黄色| 精品一区二区在线播放| 黄色一级片在线观看| 成人午夜在线影院| 1024国产精品| 福利片一区二区| 色婷婷综合久久久久中文字幕 | 国产精品99一区| 国产午夜精品理论片a级大结局| 色综合桃花网| 久久综合毛片| 91久久国产最好的精华液| 人人狠狠综合久久亚洲婷| 天天操天天摸天天爽| 久久综合免费视频| 成人网在线播放| 日韩a**中文字幕| 日韩激情视频一区二区| 精品国产免费人成在线观看| 久久狠狠婷婷| 国产丝袜视频在线播放| 欧美日韩在线观看一区| 欧美人狂配大交3d怪物一区| 欧美日本三区| 日韩理伦片在线| 日本高清一区| 亚洲国产精品热久久| 极品美女销魂一区二区三区免费| 青草在线视频在线观看| 一区二区三区四区视频在线| 日韩国产欧美精品一区二区三区| 极品美女销魂一区二区三区| 成人一区福利| 日韩网址在线观看| 欧美美女15p| 国产精品久久三| 天堂在线精品| 中文字幕在线第一页| 亚洲一区二区少妇| 欧美高清性hdvideosex| 精品一区二区三区免费视频| 久久久久伊人| 老司机很黄的视频免费| 91视频8mav| 日韩精品一区二区三区四区视频| 精品一区二区三区在线播放视频 | 亚州av乱码久久精品蜜桃| 激情小说 在线视频| 日本午夜精品一区二区三区| 日韩不卡在线观看| 99re热这里只有精品免费视频| 一区二区三区高清在线观看| 欧美成人明星100排名| 精品伦理一区二区三区| 亚洲精品成人久久电影| 久久综合九色综合97_久久久| 在线看成人短视频| 麻豆视频在线免费观看| 久久人妻无码一区二区| 97在线免费视频| 一本久道久久综合中文字幕| 美女久久久精品| 99ri日韩精品视频| 日韩精品视频在线观看一区二区三区| 欧美在线播放一区| 久久综合伊人77777蜜臀| 精品日本高清在线播放| 免费视频一区二区| 国偷自产视频一区二区久| www黄在线观看| 国产婷婷一区二区三区| 成人免费视频网| 日韩久久免费电影| 亚洲国产精品欧美一二99| 麻豆91在线观看| 在线成人动漫av| 忘忧草在线日韩www影院| 羞羞网www| 99久久久精品视频| 成人激情免费在线| 中文字幕在线看视频国产欧美在线看完整 | 91久久精品久久国产性色也91| 日韩一本二本av| 91亚洲男人天堂| 欧美日韩福利| 精品视频在线观看网站| 9191在线| 69国产精品视频| 国产一级片91| 国产一区二区三区av在线| 久久久噜噜噜久久|