免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1475 | 回复: 0
打印 上一主题 下一主题

查看linux blocksize 大小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-21 10:47 |只看该作者 |倒序浏览

参考:
http://www.cnoug.org/viewthread.php?tid=40

我的Unix文件系统的Blocksize究竟多大呢?
所有Oracle的文档都说,Oracle的DB_BLOCK_SIZE应该是操作系统的Blocksize的整数倍。
但是Unix那么多,很多人都不知道他的Unix的文件系统的Blocksize是多大。
  
下面我们就依次来分析分析,不同Unix的文件系统的Blocksize分别是多少:
  
首先,我们都知道,文件系统的Block大小,是创建文件系统的时候指定的,一般Unix都会根据对应设备文件的大小,
给一个相应的Block大小。
一般这个Block大小,都是创建文件系统之后就无法更改的,就和Oracle的db_block_size一个德行。:D
  
Linux:
这是我们最容易可以接触到的Unix。我们拿Linux下面最常见的文件系统:Ext2来分析。
我们可以通过mkfs -t ext2 /dev/sdXN 来创建文件系统。
如果我们不指定文件系统的Block大小,Linux会根据设备文件的大小,自动选择适当的BLOCKSIZE。
如何指定Linux的文件系统的BlockSize呢?
mk2efs -B 8192 /dev/sdXN  
那么,对于已经创建的文件系统,我们怎么检查当前文件系统的BlockSize呢?答案是用Tune2fs来检查:
请看:
[root@dwdb /]# tune2fs -l /dev/sda9
tune2fs 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09
Filesystem volume name:   
Last mounted on:           
Filesystem UUID:          72e96995-fee0-4921-85f8-f9d5d2cad1f8
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      filetype sparse_super large_file
Filesystem state:         not clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              6082944
Block count:              12161197
Reserved block count:     608059
Free blocks:              2308319
Free inodes:              6081568
First block:              0
Block size:               4096
Fragment size:            4096
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         16352
Inode blocks per group:   511
Last mount time:          Mon Nov  4 16:36:27 2002
Last write time:          Mon Nov  4 16:57:33 2002
Mount count:              11
Maximum mount count:      37
Last checked:             Sun Aug 18 21:10:08 2002
Check interval:           15552000 (6 months)
Next check after:         Fri Feb 14 21:10:08 2003
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
通过上面的结果,我们很容易就可以看到文件系统的Block大小就是4096.

在Solaris机器上,默认的Block大小是8K
  
我们如何指定Solaris文件系统的Block大小呢?
newfs -b 4096 /dev/c0txdxsx 里面的-b 来指定Block大小,覆盖默认的8K.
其实8k 是一个可以的数字,没有必要覆盖这个缺省参数。
  
那么我们如何检查当前已有文件系统的Block大小呢?
bash-2.05# fstyp -v /dev/rdsk/c0t2d0s0 |more      
ufs
magic   11954   format  dynamic time    Mon Nov  4 17:46:05 2002
sblkno  16      cblkno  24      iblkno  28      dblkno  408
sbsize  2048    cgsize  4096    cgoffset 160    cgmask  0xfffffff0
ncg     697     size    17827200        blocks  17553949
bsize   4096    shift   12      mask    0xfffff000
fsize   1024    shift   10      mask    0xfffffc00
frag    4       shift   2       fsbtodb 1
minfree 1%      maxbpg  1024    optim   time
maxcontig 256   rotdelay 0ms    rps     120
csaddr  408     cssize  11264   shift   8       mask    0xffffff00
ntrak   10      nsect   320     spc     3200    ncyl    11142
cpg     16      bpg     6400    fpg     25600   ipg     3040
nindir  1024    inopb   32      nspf    2
nbfree  4388485 ndir    2       nifree  2118876 nffree  4
cgrotor 0       fmod    0       ronly   0       logbno  0
我们可以看到,这个文件系统的Block大小是4K。
当然,最简单的还是
df -g:D
实际上,很多高端的Solaris机器,都配置了Veritas的文件系统,所以我们也有必要来研究一下Veritas的VXFS的一些情况。
  
vxfs 的默认的Block大小也是8K
同样,创建vxfs的文件系统,也是可以指定改文件系统的Block大小的:
  
# mkfs -F vxfs -o bsize=4096 /dev/vx/rdsk/edidg/test_vol
     version 4 layout
     10240 sectors, 1280 blocks of size 4096, log size 256 blocks
     unlimited inodes, largefiles not supported
     1280 data blocks, 992 free data blocks
     1 allocation units of 32768 blocks, 32768 data blocks
     last allocation unit has 1280 data blocks
我们检查现有文件系统的Block大小,也是使用fstyp 命令:
  
# fstyp -v /dev/vx/dsk/edidg/test_vol      
vxfs
magic a501fcf5  version 4  ctime Mon Nov  4 18:06:42 2002
logstart 0  logend 0
bsize  4096 size  1280 dsize  1280  ninode 0  nau 0
defiextsize 0  ilbsize 0  immedlen 96  ndaddr 10
aufirst 0  emap 0  imap 0  iextop 0  istart 0
bstart 0  femap 0  fimap 0  fiextop 0  fistart 0  fbstart 0
nindir 2048  aulen 32768  auimlen 0  auemlen 2
auilen 0  aupad 0  aublocks 32768  maxtier 15
inopb 16  inopau 0  ndiripau 0  iaddrlen 2   bshift 12
inoshift 4  bmask fffff000  boffmask fff  checksum e2cda323
oltext1 15  oltext2 518  oltsize 1  checksum2 31d
free 987  ifree 0
efree  1 1 2 0 1 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

HP Unix和Solaris的命令也是一样的,通过fstyp也可以检查到那个Block的大小啦。
  
在Newfs的时候,也可以指定Block的大小了。
#newfs -F hfs -f 8192 /dev/vg01/rlvol1
  
至于HP上面的vxfs ,和Solaris上的vxfs也是一码事情啦。
在AIX下面,默认的大小是4K。
在smit fs下面来创建文件系统的大小。
  
Tru64,偶就不知道了。
  
说了这么多,其实都没有什么意义。
  
我们创建数据库,一般很少会选择BlockSize小于8k的。
而几乎所有Unix文件系统的Blocksize,都不会默认大于8K.

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11765/showart_235505.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP