Loading...
 
 
Loading...
 
1
 

Loading...

 
1
 
Loading...
 
1
 
 
1
 

Loading...

Loading...

 
1
 
谈谈文件系统中inode对于服务器的影响
  2008-5-11 20:01:00  

谈谈文件系统中inode对于服务器的影响

由于做过一些有关 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 

 是指filesystem中, 每分配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 -b 4096 -f 1024。


 
 所谓block size & fragment size,这是属于file system的一种解决方案。自4.3 BSD起,BSD用这种方法来解决file fragment的问题。 


先假设 a block size= 4K,a fragment size = 256Bytes。(定义单个碎片文件大小为 256,那么1K就等于4个碎片文件)

 假如你现在要将一个 1K 的新档案写入 file system, file system会把它存入4个fragment,而不会存入block,一但这个档案继续被append增加到4K时, file system会将它转存到一个 block中, 而原来的 16 个fragments 就会被清除。
            
因为当你的档案大到 4K 时,它占用了 16 (4K / 256 bytes) 个 fragments。


再举个例子,如果现在又存了一个新的 4.1K 的档案, file system 会分配一个 block 及 4个 fragment 给这个档案。
因为 1 block + 4 fragments = 4 K + 256 bytes * 4 = 4.1K

 所以,有此可知,对于一台 news server, bbs, 或是会有大量的小档案存取时,为了降低 file system 的空间耗损率,应该采用 -b 4096 -f 256,而不要采用预设值的 -b 8192 -f 1024,因为大部分的信件都不超过 512 bytes,有些更不超过256bytes, 但是这样可能会降低存取的速度。但我相信不严重有兴趣的人可以试试。
 
======================================================================
        newfs 时的参数的影响:(以 100MB 的分割去作测试) 
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  

 

∽Seek∽ 阅读全文 | 回复(0) | 引用通告 | 编辑
 
发表评论:
Loading...
 
Powered by bitsCN.