亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux 下大規模文件自動清理方法(3)

添加時間:2010-12-6  添加: admin 
 死鎖對文件刪除性能的影響

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

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

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

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

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

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

  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 文件系統而言,文件系統本

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站