PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

回應
 
主題工具
Marty
Junior Member
 
Marty的大頭照
 

加入日期: Apr 2000
文章: 761
Linux ext3一個目錄最多可以有幾個檔案?

我因為實驗需要,所以要在Linux ext3下的一個目錄產生很多檔案,
會到上萬個以上。(當然有特殊原因,無法將檔案分類至其他目錄)

不過怕會爆掉,實驗無法繼續進行。
而我在Google search後,並沒有很明確的知道ext3的目錄檔案各數最大限制。

有沒有了解的前輩可以指點呢,謝謝。
     
      
__________________
My Blog - Blogging Marty's Life

Photo Gallery - IMAGINE the IMAGES

舊 2006-06-27, 01:15 PM #1
回應時引用此文章
Marty離線中  
purebaby
Regular Member
 

加入日期: Nov 2003
文章: 80
取自鳥哥的 Linux 私房菜(Linux 磁碟與檔案系統管理) :

目錄的最大功能就是在提供檔案的關連性,在關連性裡面, 當然最主要的就是『檔名與 inode 的對應資料』囉!另外,關於 EXT2 檔案系統,這裡有幾點小事情要提醒一下:

ext2 與 ext3 檔案在建立時 (format) 就已經設定好固定的 inode 數與 block 數目了;

格式化 Linux 的 ext2 檔案系統,可以使用 mke2fs 這個程式來執行!

ext2 允許的 block size 為 1024, 2048 及 4096 bytes;

一個 partition (filesystem) 所能容許的最大檔案數,與 inode 的數量有關, 因為一個檔案至少要佔用一個 inode 啊!

在目錄底下的檔案數如果太多而導致一個 Block 無法容納的下所有的關連性資料時,Linux 會給予該目錄多一個 Block 來繼續記錄關連資料;

通常 inode 數量的多寡設定為 (partition 的容量) 除以 (一個 inode 預計想要控制的容量)。 舉例來說,若我的 block 規劃為 4Kbytes,假設我的一個 inode 會控制兩個 block ,亦即是假設我的一個檔案大致的容量在 8Kbytes 左右時,假設我的這個 partition 容量為 1GBytes, 則 inode 數量共有:( 1G * 1024M/G * 1024K/M ) / ( 8K ) = 131072 個。而一個 inode 佔用 128 bytes 的空間,因此格式化時就會有 ( 131072個 * 128bytes/個 ) = 16777216 byes = 16384 Kbytes 的 inode table 。也就是說,這一個 1GB 的 partition 在還沒有儲存任何資料前, 就已經少了 16MBytes 的容量啊!

因為一個 inode 只能記錄一個檔案的屬性,所以 inode 數量比 block 多是沒有意義的! 舉上面的例子來說,我的 Block 規劃為 4 Kbytes ,所以 1GB 大概就有 262144 個 4Kbytes 的 block ,如果一個 block 對應一個 inode 的話,那麼當我的 inode 數量大於 262144 時,多的 inode 將沒有任何用處,徒然浪費硬碟的空間而已!另外一層想法,如果我的檔案容量都很大, 那麼一個檔案佔用一個 inode 以及數個 block ,當然 inode 數量就可以規劃的少很多啦!

當 block 大小越小,而 inode 數量越多,則可利用的空間越多,但是大檔案寫入的效率較差; 這種情況適合檔案數量多,但是檔案容量小的系統,例如 BBS 或者是新聞群組( News )這方面服務的系統;

當 Block 大小越大,而 inode 數量越少時,大檔案寫入的效率較佳,但是可能浪費的硬碟空間較多; 這種狀況則比較適合檔案容量較大的系統!

不知道有無幫助 , 感謝鳥哥 .
 
舊 2006-06-27, 02:28 PM #2
回應時引用此文章
purebaby離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是05:25 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。