Chinaunix首页 | 论坛 | 博客
  • 博客访问: 617154
  • 博文数量: 486
  • 博客积分: 10125
  • 博客等级: 上将
  • 技术积分: 5842
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 18:34
文章分类

全部博文(486)

文章存档

2011年(52)

2010年(107)

2009年(289)

2008年(38)

我的朋友

分类: LINUX

2009-10-13 01:03:30

优化ext2/ext3文件系统

  2008-05-21 21:27   阅读220   评论0  
字号:    

1,块大小的优化 块意为最小的存储单位

假设:Block size 1K

每个分区被格式化后,都会创建很多块

如果一个文件有4K,要使用4个块

即使一个块不到1K,但也会使用1个块


假设:Block size 4K

如果一个文件有4K,只使用1个块

即使一个块不到4K,也会使用1个块,直到填满才使用下一个块


这样我们就可以看到一个现象,如果你的文件很大,而数据块很小,这个文件就会被分割成很小的很多块,这样分割的时间和寻址的时间都会花费比较多的时间,相反如果数据块大点就会减少相应的时间!但并非块越大越好!如果你的块大小4K,而你的文件只有1K,这样就会浪费3/4的空间,这样就要根据时间情况来判断。


Mkfs.ext3 -b 1024 /dev/sdb2

每个数据块大小为1024个字节

如果要增加数据块的大小

Mkfs.ext3 -b 4096 /dev/sdb2

(-b 后面的大小默认只有1024,2048,4096)

2,节点块的优化

在我们读写数据的时候,所有的数据都要写进数据块里面,在数据块寻址的时候都是根据数据块的编号来找的,假设有4个数据块分别为1,2,3,4,如果一个文件file1占用了1,2两个数据块,那么会在索引区里分配2个节点,当读取file1的时候就会读取2个节点,如果我们把2个数据块合并一起,就可以提高读取速度,file1只需要寻一次址就可以了,

-      i 表示节点使用多大的数据块

Mkfs.ext3 -b 4096 -i 8192 /dev/sdb2

每一个数据块代表4096,每2个数据块编一个号,4096*2=8192

这样可以对大文件寻址的速度加快

或者Mkfs.ext3 -b 4096 -i 4096 /dev/sdb2

一个数据块编一个号


实例对比可以使用tune2fs -l /dev/sdb2 |more 查看

Inode count节点的编号

Block count块的编号

看看2种命令的区别


3,保留块的优化

保留块-为管理员保留的磁盘管理空间,默认为总数据块的5%,而且这部分空间只能管理员占有。

使用:Mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sdb2

设置保留块的数量占总数的百分比为2

举例比较:

Mkfs.ext3 -b 4096 -i 8192 -m 5 /dev/sdb2

Mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sdb2


使用tune2fs -l /dev/sdb2

查看 reserved block count:数量的不同


这样对于大硬盘空间的使用会节约很大一部分空间(3%)


4)tune2fs 调整ext2/ext3文件系统特性的工具

-l 〈device> 查看文件系统信息

-c 设置强制自检的挂载次数

使用tune2fs -l /dev/sdb2查看maximum mount count 默认是27次,每挂载一次mount conut就会加1,超过次数就会强制自检

使用tune2fs -c -1 /dev/sdb2

设置负1就可以避免

当然也可以手动自检,使用fsck

-I   设置强制自检的间隔时间

使用tune2fs -l /dev/sdb2查看check interval 默认是6months

使用tune2fs -c -1 -i 0 /dev/sdb2

设置为0

-m   保留块的百分比

-j   将ext2 文件转换为ext3格式

不会破坏文件数据的格式转换命令参数。

阅读(246) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~