Linux

文件數量是否會降低伺服器速度?

  • October 21, 2011

擁有大量文件顯然會降低作業系統的速度;但是這個問題有多嚴重?考慮到文件已經很好地分佈在多級文件夾中。文件數量(可能是因為使用 inode)仍然會減慢系統速度嗎?

我說的是幾百萬!由於程序不同,這對於台式電腦來說並不算多;但這對於 Web 伺服器來說太過分了。

我很想知道儲存數百萬個文件(在適當的文件夾中)是否會對伺服器性能產生重大影響?

**更多資訊:**將 ext4 視為文件系統,兩級文件夾中每個文件夾 100 個文件。

Having numerous files will obviously slow down the OS

不,真的不會。我的 *NIX 系統的 inode 使用率為 99%(“接近文件系統可以容納的文件數量的上限”)並且沒有性能問題。

我的工作站目前的 inode 使用率為 90%,我所有的性能問題都是由於 RAM 不足造成的。


but how much this problem is serious? Consider that the files have been well distributed over multi-level folders. Does still the number of files (probably because of using inodes) can slow down the system?

這不是一個嚴重的問題。如果架構正確,您應該能夠在沒有任何性能問題的情況下達到系統的 inode 限制。

另請注意,每個目錄(“文件夾”)在 *NIX 系統上都使用一個 inode。


I am talking about few millions! This is not too much for a Desktop computer, due to different programs; but this is too much for web servers.

你這個(大部分是不正確的)陳述的依據是什麼?假設它們執行相同的作業系統,為什麼您的桌面和伺服器在文件系統行為方面會神奇地不同?

“不同的程序”對文件系統性能沒有影響。作業系統負責告訴您哪些文件在哪裡(邏輯上在文件系統內和物理上在磁碟上),並且大多數文件系統在這方面非常有效。


I am curious to know whether storing few millions of files (in appropriate folder) has a significant effect on the server performance?

一個目錄中的數百萬個文件?不可取(在許多系統上也不可能——通常對目錄中的最大文件數有限制)。

遍歷一個非常大的目錄樹可能會導致性能問題(作業系統需要時間遍歷樹並列出所有子目錄,然後您的軟體必須處理它正在處理的大量數據),但是如果您沒有一個非常不合理的目錄結構(如“Everything in /dumping_ground”)這不應該是一個問題。



針對上述編輯:

More Information: Consider ext4 as filesystem, and 100 files per folder in two-level folders.

你在開玩笑,對吧?考慮以下文件的數量/usr/bin

# ls -a /usr/bin | wc -l
    448

這對. _/usr/bin

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