Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1035344
  • 博文数量: 243
  • 博客积分: 3053
  • 博客等级: 中校
  • 技术积分: 2975
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-02 21:11
文章分类

全部博文(243)

文章存档

2013年(2)

2012年(20)

2011年(5)

2010年(114)

2009年(102)

我的朋友

分类: LINUX

2009-07-29 08:54:07

首先,什么是RamDisk? 一个A RamDisk 是你用作一个硬盘分区的一部分内存空间。或者换句话说,你是把内存假设为一个硬盘驱动器,并且你在它的上面存储文件。为什么我们要使用 RamDisk? 好的,如果你知道通常将要使用的文件是被调入内存以提高计算机的性能,因为内存的存储速度要快于硬盘。 这样类似于web服务器上的数据就可以用这个方法提高访问速度。

这项技术目前在Linux中使用的比较广泛,因此许多进行从Linux到Solaris进行移植的工程师都比较关心在Solaris比如Solaris10上是否支持,或者有没有类似的功能。答案当然是有的。在Solaris10(03/05)上通过man ramdisk就可以看到它详细的manpage。不过细心的工程师会发现manpage的最后几行字:

The percentage of available physical memory that can be allocated to ramdisks is constrained by the variable rd_percent_physmem. You can tune the rd_percent_physmem variable in /etc/system. By default, the percentage of available physical memory that can be allocated to ramdisks is fixed at 25%.

A ramdisk may not be the best possible use of system memory.Accordingly, use ramdisks only when absolutely necessary.

为什么这样呢?
1.在Solaris中很多系统资源的使用存在默认的限制。这一点可以通过修改/etc/system文件中关联的变量可以解决。比如 rd_percent_physmem限制你可以使用的系统Memory只有总量的1/4,如果有你使用的ramdisk超出物理内存1/4的使用量就可能有“out of memory”或者其他错误出现。

2.大量使用系统RAM可能造成kernel对内存使用的短缺,不断有不活跃的进程地址空间或者进程本身被交换到Swap空间(磁盘上),而最坏的情况莫过于内核进程本身都memory不足,被从内存中交换出去。因此,在RAM足够大的情况下,这种解决方案才能实现你本来想要的高性能的RAM disk功能。

为了在Solaris上达到目的,一些专家推荐了tmpfs。它具有良好的伸缩性,可以很简单的配置。虽然tmpfs也使用memory和swap,就是说它也有在物理内存不足的情况下被交换出去的可能性,但是一个典型的tmpfs在通常情况下是长期驻留在内存里的。

例如,创建和挂装一个200m的tmpfs目录的方式:
mount -F tmpfs -o size=200m swap /ramdisk
(The "swap" is just part of the incantation and doesn't mean swap on it.)
或者你也可以修改/etc/vfstab达到你追加挂装点的目的,这里不作详述。

另外,传统的虚拟磁盘是个块设备,需要通过mkfs(Solaris)/mke2fs(Linux)命令创建文件系统才能真正地使用,而tmpfs已经是一个文件系统,您只是安装就可以使用了。

总的来说,tmpfs有以下优势:
1.可动态改变文件系统的大小,就是所谓的伸缩性好。
2.速度很快。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。

和RAMDISK类似的是,tmpfs 数据在重新启动之后也不会保留。您有必要配置一些脚本完成备份数据、加载等操作。
阅读(1125) | 评论(0) | 转发(0) |
0

上一篇:UNIX上查看系统参数

下一篇:awk使用

给主人留下些什么吧!~~