首页 > *nix技术, Shell命令, 文件系统 > e2freefrag命令详解

e2freefrag命令详解

2012年2月10日 11,119 次浏览

e2freefrag是e2fsprogs工具包里的一个命令,可以用来检测ext系列文件系统的碎片情况。这个命令对指定磁盘从前往后进行扫描,对所有空闲的block块进行统计,而这种统计又根据空闲block块的连续块数分别进行计数。实例如下:

[root@localhost ~]# e2freefrag /dev/mapper/VolGroup-lv_root
Device: /dev/mapper/VolGroup-lv_root
Blocksize: 4096 bytes
Total blocks: 13107200
Free blocks: 9604254 (73.3%)

Min. free extent: 4 KB 
Max. free extent: 2064252 KB
Avg. free extent: 7912 KB

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :           859           859    0.01%
    8K...   16K-  :           926          2211    0.02%
   16K...   32K-  :           827          4047    0.04%
   32K...   64K-  :           490          5311    0.06%
   64K...  128K-  :           470         10775    0.11%
  128K...  256K-  :           440         19424    0.20%
  256K...  512K-  :           238         20824    0.22%
  512K... 1024K-  :           178         32652    0.34%
    1M...    2M-  :           157         60290    0.63%
    2M...    4M-  :            83         59335    0.62%
    4M...    8M-  :            52         74292    0.77%
    8M...   16M-  :            39        106171    1.11%
   16M...   32M-  :            23        125257    1.30%
   32M...   64M-  :            24        240637    2.51%
   64M...  128M-  :            22        507390    5.28%
  128M...  256M-  :             2        102525    1.07%
  256M...  512M-  :             2        190780    1.99%
  512M... 1024M-  :             3        664790    6.92%
    1G...    2G-  :            19       7376586   76.81%
[root@localhost ~]# 

其中:
4K… 8K- : 859 859 0.01%
表示范围在[4K, 8K)内的连续空闲块,由于该磁盘分区的block块大小为4096,所以区间[4K, 8K)表示磁盘某处有单独的一块block处于空闲状态(因为这是个半闭半开区间,不包含8K,同时又必须是4096的整数倍,所以只有4096,一块block),而其前后的block块都在使用中。通过后面的数据可以看到,这种单独的空闲block有859块,占整个空闲块数的0.01%,即是859/9604254。
其中Free extents列对应的859又是什么呢?这个数字表示这些空闲block块分散的数目。由于这里只有4096,即1块空闲block单独占一处,所以分散的数目也是859。
64K… 128K- : 470 10775 0.11%
表示范围在[64K, 128K)内的连续空闲块,这样的空闲块共有10775块,占整个空闲块数的0.11%,即是10775/9604254。这些空闲block块分散的数目为470,即有很多空闲块是连续在一起的,它们被extent计数只计1。比如磁盘某一处有18块连续的空闲block,那么对于空闲block计数来说计+18,而对于extent计数来说只计+1,所以extent计数肯定比空闲block计数要小。
如果越是小的范围,Percent越大,那么说明磁盘碎片相对越多。反之则反。
Min. free extent: 4 KB
Max. free extent: 2064252 KB
Avg. free extent: 7912 KB

这里说明:最小的连续空闲块总大小为4K,也就是一个block块;最大的连续空闲块总大小为2064252K,即有516063个block块连续空闲;而平均连续空闲块总大小为7912K,这个值等于Free Blocks(即859+2211+4047+…=9604156)*4096/Free extents总和(即859+926+827+…=4854)/1024=7914。
还有一个-c的参数,这个参数指定chunk大小(如果不指定,默认是1024K),指定为4096K:

[root@localhost ~]# e2freefrag /dev/mapper/VolGroup-lv_root -c 4096
Device: /dev/mapper/VolGroup-lv_root
Blocksize: 4096 bytes
Total blocks: 13107200
Free blocks: 9604254 (73.3%)

Chunksize: 4194304 bytes (1024 blocks)
Total chunks: 12801
Free chunks: 9040 (70.6%)

Min. free extent: 4 KB 
Max. free extent: 2064252 KB
Avg. free extent: 7908 KB

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :           860           860    0.01%
    8K...   16K-  :           926          2211    0.02%
   16K...   32K-  :           828          4054    0.04%
   32K...   64K-  :           490          5311    0.06%
   64K...  128K-  :           470         10775    0.11%
  128K...  256K-  :           440         19424    0.20%
  256K...  512K-  :           238         20824    0.22%
  512K... 1024K-  :           178         32644    0.34%
    1M...    2M-  :           157         60287    0.63%
    2M...    4M-  :            83         59326    0.62%
    4M...    8M-  :            52         74292    0.77%
    8M...   16M-  :            39        106089    1.10%
   16M...   32M-  :            23        125257    1.30%
   32M...   64M-  :            24        240637    2.51%
   64M...  128M-  :            22        507390    5.28%
  128M...  256M-  :             2        102525    1.07%
  256M...  512M-  :             2        190780    1.99%
  512M... 1024M-  :             3        664790    6.92%
    1G...    2G-  :            19       7376586   76.81%

多了一些内容:
Chunksize: 4194304 bytes (1024 blocks)
Total chunks: 12801
Free chunks: 9040 (70.6%)

这表示chunk大小为4096K,即连续的1024个block块为一个chunk。整个磁盘有12801个chunk,即是13107200/1024+1,加1表示最末的剩余block组成一个chunk,此时可能虽然没有被文件系统管理。空闲的chunk数目为9040,百分比为70.6%,即是9040/12801。
空闲chunk表示该chunk内所有block都空闲,所以如果增大chunk大小,那么空闲的chunk数目会降低:

[root@localhost ~]# e2freefrag /dev/mapper/VolGroup-lv_root -c 8192
Device: /dev/mapper/VolGroup-lv_root
Blocksize: 4096 bytes
Total blocks: 13107200
Free blocks: 9604254 (73.3%)

Chunksize: 8388608 bytes (2048 blocks)
Total chunks: 6401
Free chunks: 4473 (69.9%)

Min. free extent: 4 KB 
Max. free extent: 2064252 KB
Avg. free extent: 7908 KB

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :           860           860    0.01%
    8K...   16K-  :           926          2211    0.02%
   16K...   32K-  :           828          4054    0.04%
   32K...   64K-  :           490          5311    0.06%
   64K...  128K-  :           470         10775    0.11%
  128K...  256K-  :           440         19424    0.20%
  256K...  512K-  :           238         20824    0.22%
  512K... 1024K-  :           178         32644    0.34%
    1M...    2M-  :           157         60287    0.63%
    2M...    4M-  :            83         59326    0.62%
    4M...    8M-  :            52         74292    0.77%
    8M...   16M-  :            39        106089    1.10%
   16M...   32M-  :            23        125257    1.30%
   32M...   64M-  :            24        240637    2.51%
   64M...  128M-  :            22        507390    5.28%
  128M...  256M-  :             2        102525    1.07%
  256M...  512M-  :             2        190780    1.99%
  512M... 1024M-  :             3        664790    6.92%
    1G...    2G-  :            19       7376586   76.81%
[root@localhost ~]# e2freefrag /dev/mapper/VolGroup-lv_root -c 65536
Device: /dev/mapper/VolGroup-lv_root
Blocksize: 4096 bytes
Total blocks: 13107200
Free blocks: 9604254 (73.3%)

Chunksize: 67108864 bytes (16384 blocks)
Total chunks: 801
Free chunks: 515 (64.3%)

Min. free extent: 4 KB 
Max. free extent: 2064252 KB
Avg. free extent: 7908 KB

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :           860           860    0.01%
    8K...   16K-  :           926          2211    0.02%
   16K...   32K-  :           828          4054    0.04%
   32K...   64K-  :           490          5311    0.06%
   64K...  128K-  :           470         10775    0.11%
  128K...  256K-  :           440         19424    0.20%
  256K...  512K-  :           238         20824    0.22%
  512K... 1024K-  :           178         32644    0.34%
    1M...    2M-  :           157         60287    0.63%
    2M...    4M-  :            83         59326    0.62%
    4M...    8M-  :            52         74292    0.77%
    8M...   16M-  :            39        106089    1.10%
   16M...   32M-  :            23        125257    1.30%
   32M...   64M-  :            24        240637    2.51%
   64M...  128M-  :            22        507390    5.28%
  128M...  256M-  :             2        102525    1.07%
  256M...  512M-  :             2        190780    1.99%
  512M... 1024M-  :             3        664790    6.92%
    1G...    2G-  :            19       7376586   76.81%
[root@localhost ~]# 

转载请保留地址:http://www.lenky.info/archives/2012/02/1047http://lenky.info/?p=1047


备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。

法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。

本文的评论功能被关闭了.