iT邦幫忙

DAY 11
6

回應鐵人賽的文章變鐵人系列 第 11

[Reply] 海量檔案數在現有的檔案系統可能的問題(二)

接續 上一篇 未完成的介紹。
原文是 One Billion Dollars! Wait… I Mean One Billion Files!!! (十億
元,不,我意思是十億個檔案)
較小的規模測試
就拿十億個檔案載到Linux裡試驗看看,
會發生怎樣的情形。
在這篇 簡報 裡,
大致的測試說明如下:
如果以十億個1KB的檔案來算,只需1TB,
如果以10KB的十億個檔案計,就需要10TB的空間。
若以100KB的十億個檔案計,就需要100TB。
不難想像100TB在一個磁碟陣列的情形。
當然這是以較小的檔案的估算。

在實驗中,建100TB的磁碟陣列來測試,
需要以下的步驟:
用mkfs建立檔案系統
使用檔案
塞資料到檔案系統
以fsck修復檔案系統
刪除檔案

分別用 ext3, ext4, xfs, btrfs
透過上述的步驟,
一一測試並記錄結果。

先在1TB的SATA硬碟產生一個1TB的檔案系統,
為了解該儲存體的效能瓶頸所在,
同時建了一個PCIe界面的SSD硬碟的75GB的檔案系統,
圖一

是 mkfs 在兩個硬體,
分別以不同的檔案系所需時間的比較圖。

這是以一百萬個檔案的試驗,
其中ext3, ext4花較長的時間,
因為需產生靜態 inode tables,
而XFS是動態的inode只花20秒。
ext3 大約花275秒。
圖中也可看出在SSD建立檔案系統,
遠比在SATA硬碟上快。

第二個步驟是塞檔到檔案系統中。
試驗中1000個目錄,每個目錄裡有1000個檔案。
圖二

是產生1百萬個檔案在1TB的SATA及75GB的SSD硬
碟的情形。
圖中可看到在塞SATA硬碟時,以ext3及XFS花較長的時間,
ext3要9700秒或2小時又42分
XFS花7200秒或大約2小時。
ext4約800秒(小於13分鐘)。
btrfs約600秒(十分鐘)。
而在SSD硬碟的結果裡,
XFS稍微比其他花較長的時間,
而ext4在SSD中是最快的。
其實這四種所花的時間很少,
難以區別之間的差異。

第四階段看fsck修復一百萬個檔的測試,
圖三

明顯看出在兩種硬碟ext3都遠慢於其他三者,
特別是在SATA硬碟,ext3需1040秒,而第二慢的btrfs卻只要90秒。
然而要注意的是在SSD修復的速度相當快,
即使最慢的ext3也只花80秒就可修復100萬個檔。

最後階段是從檔案系統移除檔案。
圖四

是從兩種硬碟移除檔案所花時間的圖示。
在SATA硬碟裡XFS甚至比ext3還慢,
XFS需約3800秒(小於一小時)移除一百萬個檔,
第二慢的是ext3,需875秒(近15分鐘)。
最快的是ext4,而btrfs所花的時間也很接近。
在SSD上的表現而言,
btrfs最慢,但每個類型的彼此差距都很小。

系列文章


上一篇
[Reply] 海量檔案數在現有的檔案系統可能的問題(一)
下一篇
[Reply] 海量檔案數在現有的檔案系統可能的問題(三)
系列文
回應鐵人賽的文章變鐵人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言