Total Pageviews

Tuesday, 13 September 2016

RamDisk和vmtouch

在实际工作中,我们经常会希望能有效提升IO性能,最直接的方法就是使用内存来代替磁盘,随着内存的不断白菜价,现在这种方式已经完全可行了。SQL Server中准备引入In-Memory技术,就是基于此种考虑,当然带来的效果也是很明显的。据说相对磁盘能有50倍的提升。
今天我们就介绍三款可以做到类似功能的产品,当然他们的使用场景还是有所区别的。
因产生本身简单,所以相关的介绍内容也很少。

              RAM disk
一、介绍

Ram Disk:将内存划分出来一部分当磁盘使用。
优点:提升性能,加速读写。
缺点:重启后Ram Disk数据会丢失。


二、使用方法:

1、查看linux系统中的“内存盘”    :
$ls -l /dev/ram*

2、格式化RamDisk:
$mke2fs -m 0 /dev/ram0

3、创建挂载点并挂载RamDisk:
$mkdir /mnt/rd
$mount /dev/ram0 /mnt/rd

4、验证RamDisk是否挂载成功:
$mount | grep ram0
/dev/ram0 on /mnt/rd type ext2 (rw)
$df -h | grep ram0
/dev/ram0       16M   13K   16M   1% /mnt/rd

5、RamDisk卸载:
$umount -v /mnt/rd

6、查看RamDisk实际用了多少空间:
$df -k /dev/ram0

              Vmtouch

一、功能介绍:
Vmtouch:将文件目录加载到内存中,缓存起来,以提高访问速度。
Mlock:确保划出的内存空间不使用或交还,以保证Vmtouch对象一直处于active状态。

二、使用方法:
Vmtouch:
1、编译
$ gcc -Wall -O3 -o vmtouch vmtouch.c

2、安装
$cp vmtouch /usr/local/bin/