zoukankan      html  css  js  c++  java
  • linux下ex2/3 查看block size


    参考: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:   <none> 
    Last mounted on:          <not available> 
    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.

  • 相关阅读:
    CI框架 -- 核心文件 之 Loader.php(加载器)
    CI框架 -- 核心文件 之 Lang.php(加载语言包)
    CI框架 -- 核心文件 之 Input.php(输入数据处理文件)
    CI框架 -- 核心文件 之 Hooks.php
    CI框架 -- 核心文件 之 Exceptions.php
    CI框架 -- 配置文件config.php
    网站后台发通知页面效果图
    校内通知-Notifications表增加老师,家长,学生发送范围字段
    jqGrid设置指定行的背景色
    SQLServer数据库监控代码
  • 原文地址:https://www.cnblogs.com/hui314/p/linux_block_size.html
Copyright © 2011-2022 走看看