RamDisk, vmtouch and mlock

在实际工作中,我们经常会希望能有效提升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 & mlock
 
一、功能介绍:
Vmtouch将文件目录加载到内存中,缓存起来,以提高访问速度。
Mlock确保划出的内存空间不使用或交还,以保证Vmtouch对象一直处于active状态。
 
 
二、使用方法:
Vmtouch
1、编译

$ gcc -Wall -O3 -o vmtouch vmtouch.c

2、安装

$cp vmtouch /usr/local/bin/

        
mlock
mlock是一组函数,在你的程序中,你可以调用mlock提供的函数来达到锁定内存的目的。

#include <sys/mman.h>
int mlock(const void *addr, size_t len);
int munlock(const void *addr, size_t len);

int mlockall(int flags);
int munlockall(void);




 » 转载请注明来源:AnyKoro Blog » 《RamDisk, vmtouch and mlock》
 » 订阅本站:RSS订阅

发表评论

您也可以使用微博账号登陆

无觅相关文章插件,快速提升流量