精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>系统管理>>系统设置与技巧>>系统相关之howto>>系统相关的 : 关于 inode

主题:系统相关的 : 关于 inode
发信人: neal()
整理人: hahalee(1999-04-22 02:54:05), 站内信件

From: [email protected] (优客李林) 
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 2048 -b8192 -f1024 
 
unixer 
 
============================================================================
 
From: [email protected] (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 9182 -f 1024,因为大部分的信件都不超过 512 
bytes,  
        有些更不超过 256 bytes, 但是这样可能会降低存取的速度.但我相信不严重  
        有兴趣的人可以试试. 
 
=========================================================================
 
 
        newfs 时的参数的影响:(以 100MB 的分割去作测试) 
 
From [email protected]  Fri Mar 14 23:53:58 1997 
From: Jason Chang <[email protected]
 
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 

--
※ 来源:.网易 BBS bbs.netease.com.[FROM: dmx320.resnet.ust.hk]

[关闭][返回]