Linux

Linux 文件系統中目錄的最大文件數,最佳性能

  • May 9, 2010

目錄中有多少文件會降低伺服器性能?我有一個包含數十萬張圖片的網站(>一百萬在單獨的目錄中)。我想知道它是否會影響性能。

伺服器詳細資訊:centos、apache、php 5

沒有簡單的方法來回答這個問題,但請看一下以下內容:

  • /usr/share/lib/terminfo/…
  • CPAN 作者/id/…

在這兩種情況下,條目都遠少於一百萬,設計師將目錄分成多個級別以加快訪問速度。

如果您有一百萬個條目並且文件系統沒有在目錄處理程式碼中內置任何搜尋結構,那麼訪問文件將需要 o/s 讀取目錄中大約一半的名稱 + inode 編號條目文件。即使它全部在緩衝池中,這也會成為一個巨大的工作量。

如果您引入分層命名系統 - 這兩個範例都基於名稱的第一個字元:

terminfo/lib/a/ansi
id/J/JO/JOHNL

CPAN有兩個級別;對於您的 100 萬個文件,我可能也會使用兩個級別。

擁有額外級別的目錄會產生一些成本。

這些方案假定您知道要查找的一個名稱 - 搜尋所有名稱是一個不同的命題。

引用自:https://serverfault.com/questions/139864