[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 系統管理 > 其它 > 正文
關inode的簡介
本文出自: 作者: (2001-08-02 07:00:00)
來  源: freebsd.csie.nctu.edu.tw 
檔  名: 0/System/inode(使用 70 埠) 
標  題: 關 inode                       - About inode 
 
 
From: unixer.bbs@bbs.ee.ncku.edu.tw (優客李林) 
Newsgroups: tw.bbs.comp.386bsd 
Subject: 有關 inode... 
Date: 9 Dec 1996 08:27:00 GMT 
 
Hi... 
 
由做過一些有關 filesystem 的 study, 在這邊對 inode 做一點說明... 
 
1. inode 是作甚的? 
 
  一個 filesystem 可以粗略地分成 inode table 與 data area 兩部份. 
  inode table 上有許多的 inode, 每個 inode 分別 記錄一個檔案的屬性, 
  與這個檔案分布在哪些 datablock 上 
 
2. 一個 inode 有多大呢? 
 
  128 byte! 
 
3. inode 和 data area 的關系 
 
  在 new filesystem 時, 通常會有一個參數, 用來描述要分配多少比例的空間給 
  inode table. 舉例來說, 
 
  newfs -i 2048 
 
  是指 file system 中, 每分配 2048 byte 給 data area, 就分配一個 inode 
  但是一個 inode 就並不是一定就用掉 2048 byte, 也不是說 files allocation 
  的最小單位是 2048 byte, 它僅僅只是代表 filesystem 中 
  inode table/data area 分配空間的比例是 128/2048 也就是 1/16 
  (換個角度想, 我們可以想成是預估 filesystem 中 file 平均大小是 2048 byte) 
 
  如果 inode table 太小, 那在每個檔案都很小的時候, 就會發生 inode 用光 而 
  datablock 還剩一堆的情形. 
 
4. file allocation 的最小單位 和 inode 多少有沒有關系呢? 
 
  沒有關系! 
 
  FFS 中真正的最小單位是 fragment size 也就是我們在 new filesystem 時用的 
 
  newfs -b 8192 -f 1024 
                ^^^^^^^^ 
  ps: -b 8192 代表 blocksize=8192, 這種"較大單位"是用來加速大檔案的存取用的 
 
在 FreeBSD 中, 內定的是 -i 4096 -b 8192 -f 1024. 如果您要架 bbs/new 的話 
可以考慮用 -i 1024 -b4096 -f1024 
 
unixer 
 
============================================================================ 
From: alexj@mail.tmc.edu.tw (Ji, Wen-Jie) 
Newsgroups: tw.bbs.comp.386bsd 
Subject: Re: HELP !! The parameter of newfs 
Date: Thu, 12 Dec 1996 01:39:31 GMT 
 
        沒關系,我自己找到答案了,寫在此讓大家分享一下. 
        所謂 block size & fragment size, 這是屬 file system 
        的一種解決方案. 自4.3 BSD, BSD 用這種方法來解決檔案 fragment 
        的問題 
                先假設  a block size= 4K, a fragment size = 256Bytes. 
        假如你現在要將一個 1K 的新檔案寫入 file system, FS 會把它存入 4 
        個fragment,而不會存入 block,一但這個檔案繼續被 append 增加到 4K 
        時, FS 會將它轉存到一個 block中, 而原來的 16 個fragments 就會被 clean 
                                           ^^^^^^^^^^^^^^^^^^^^ 
                                       因為當你的檔案大到 4K 時,它佔用 
                                       了 16 (4K / 256 bytes) 個 fragments 
                再舉個例子, 如果現在又存了一個新的 4.1K 的檔案, FS 會分配 
        一個 block 及 4個 fragment 給 這個檔案, 
        因為 1 block + 4 fragments = 4 K + 256 bytes * 4 = 4.1K 
 
        所以,有此可知,對一台 news server, bbs, 或是會有大量的小檔案存取時, 
        為了降低 FS 的空間耗損率,應該採用 -b 4096 -f 256, 
        而不要採用預設值的 -b 8192 -f 1024,因為大部分的信件都不超過 512 bytes, 
        有些更不超過 256 bytes, 但是這樣可能會降低存取的速度.但我相信不嚴重 
        有興趣的人可以試試. 
 
========================================================================= 
 
        newfs 時的參數的影響:(以 100MB 的分割去作測試) 
 
>From jason@csie.NCTU.edu.tw  Fri Mar 14 23:53:58 1997 
From: Jason Chang  
 
 
size: 208845 (about 100MB) 
 
參數                            可用空間(1K-blocks)     可用 inode (ifree) 
-i 1024                         91525                   102397 
-i 2048                         96661                   61437 
-i 4096                         100501                  30717 
-i 8192                         102421                  15357 
-i 16384                        103381                  7677 
-i 32768                        103861                  3837 
-i 16384 -b 16384 -f 2048       103316                  7677 
-i 16384 -b 32768 -f 4096       103104                  8189 
-i 16384 -b 65536 -f 8192       102808                  8189 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
中文man手冊:stat - 打印信息節點(inode)內容 (2001-09-23 09:05:00)
關inode的簡介 (2001-08-02 07:00:00)
inode大小的最佳設置 (2001-06-12 10:08:00)
SCO Unix 制作系統應急盤“Out of inodes”錯誤的處理 (2001-04-21 23:58:44)
 

★  樊強制作 歡迎分享  ★