e2freefrag命令详解
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/1047 或 http://lenky.info/?p=1047
备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来信讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。
法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。