内存文件系统提升磁盘性能瓶颈

author:skate
time:2011/08/22

 


提升磁盘性能瓶颈


linux的内存文件系统:ramdisk,ramfs,tmpfs

 

ramdisk:


是块设备,在使用它们之前必须用选择文件系统将其格式化。并且调整文件系统大小比较麻烦,
需要修改内核引导参数并重新启动操作系统,在我们的应用中,需要 7X24不间断运行的系统
来说,并不是一个可以接受的选择

ramfs:
Ramfs是内存文件系统,他工作于虚拟文档系统(VFS)层。不用格式化,直接mount使用,能够创建多个,
在创建时能够指定其最大能使用的物理内存大小。


[root@localhost current]# df -haT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3    7.7G  6.6G  724M  91% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda1     ext3     99M   13M   82M  14% /boot
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
none   binfmt_misc       0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs       0     0     0   -  /var/lib/nfs/rpc_pipefs
my_tmpfs     tmpfs    1.2G  1.2G   11M 100% /tmpfs
my_tmpfs     tmpfs    1.2G  1.2G   11M 100% /tmpfs
ram_tmpfs    tmpfs    1.2G     0  1.2G   0% /ram1


[root@localhost current]# mount -t ramfs  my_ramfs /ramfs -o  maxsize=100m


[root@localhost current]# df -haT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3    7.7G  6.6G  724M  91% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda1     ext3     99M   13M   82M  14% /boot
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
none   binfmt_misc       0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs       0     0     0   -  /var/lib/nfs/rpc_pipefs
my_tmpfs     tmpfs    1.2G  1.2G   11M 100% /tmpfs
my_tmpfs     tmpfs    1.2G  1.2G   11M 100% /tmpfs
ram_tmpfs    tmpfs    1.2G     0  1.2G   0% /ram1
my_ramfs     ramfs       0     0     0   -  /ramfs
[root@localhost current]#

 

tmpfs:
Tmpfs是个虚拟内存文档系统,他不同于传统的用块设备形式来实现的ramdisk,也不同于针对物理内存的Ramfs。
Tmpfs能够使用物理内存,也能够使用交换分区。在Linux内核中,虚拟内存资源由物理内存(RAM)和交换分区组成,
这些资源是由内核中的虚拟内存子系统来(VM)负责分配和管理。Tmpfs就是和虚拟内存子系统来"打交道"的,他向
虚拟内存子系统请求页来存储文档,他同Linux的其他请求页的部分相同,不知道分配给自己的页是在内存中还是
在交换分区中。Tmpfs同Ramfs相同,其大小也不是固定的,而是随着所需要的空间而动态的增减。

 

tmpfs和ramfs不同


1.ramfs是内存文件系统,只使用物理内存;tmpfs是虚拟内存文件系统,使用物理内存和交换分区
2.在进程占用内存较多,因为tmpfs根据vm的调度策略会使用交换分区,所以tmpfs的性能可能会低于ramfs,但tmpfs也为其他程序节省了物理内存

 


经过以上的测试发现,在我们实际应用场景中,我们只能用tmpfs和ramfs,而为了充分利用宝贵的内存资源,增大内存文件系统,建议使用tmpfs

 

创建测试:


[root@localhost current]# df -hTa
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3    7.7G  6.6G  724M  91% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda1     ext3     99M   13M   82M  14% /boot
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
none   binfmt_misc       0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs       0     0     0   -  /var/lib/nfs/rpc_pipefs
my_ramfs     ramfs       0     0     0   -  /ramfs
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
my_ramfs     ramfs       0     0     0   -  /ramfs


[root@localhost current]# mount -t tmpfs  my_tmpfs /tmpfs -o  size=100m


[root@localhost current]# df -hTa
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3    7.7G  6.6G  724M  91% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda1     ext3     99M   13M   82M  14% /boot
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
none   binfmt_misc       0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs       0     0     0   -  /var/lib/nfs/rpc_pipefs
my_ramfs     ramfs       0     0     0   -  /ramfs
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
my_ramfs     ramfs       0     0     0   -  /ramfs
my_tmpfs     tmpfs    100M     0  100M   0% /tmpfs
[root@localhost current]#

 


内存文件系统使用场景:
tmpfs和ramfs内存文件系统的特点是速度快,重启数据丢失等特点,所以其中常用存储非重要,中间计算,较少对磁盘的直接访问;
内存文件系统不要设置过大,避免占用内存太多,使系统整体系统下降或宕机。

 

 

 

-----------------end---------------

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值