内存文件系统

tmpfs 虚拟内存文件系统

tmpfs是一种基于内存的文件系统,和虚拟磁盘ramdisk比较类似像。tmpfs可以使用RAM,但它也可以使用swap分区来存储。传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它。而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。tmpfs是最好的基于RAM的文件系统

:使用tmpfs,编译内核时得选择虚拟内存文件系统支持(Virtual memory filesystem support)

tmpfs 和VM(虚拟内存)

tmpfs文件系统需要VM子系统的页面来存储文件。tmpfs自己并不知道这些页面是在交换分区还是在RAM中;做这种决定是VM子系统的工作。tmpfs文件系统所知道的就是它正在使用某种形式的虚拟内存

加载tmpfs文件系统

标准挂载点是/dev/shm,默认大小是实际内存的一半

# mkdir -p /mnt/tmpfs
# mount tmpfs /mnt/tmpfs -t tmpfs
//指定大小
# mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m
//动态调整
# mount tmpfs /mnt/tmpfs -t tmpfs -o remount,size=200m,mode=0755

内存使用情况

卸载

#umount /mnt/tmpfs

速度测试

int main()
{
    int fd = open("txt", O_CREAT | O_RDWR, 0666);
    char str[16];
    int i = 0;
    for(; i<2000000; i++)
    {
        write(fd, "1234567890\n", 11);
        read(fd, str, 11);
    }
    return 0;
}

速度测试

ramdisk 虚拟内存盘

不足之处是大小固定,之后不能改变
linux系统:直接格式化并挂载/dev/ramX 即可(X是内存盘序号)

//查看一下可用的RamDisk
# ls /dev/ram* 
//创建一个目录
# mkdir /mnt/test
//对/dev/ram0 创建文件系统
# /sbin/mke2fs /dev/ram0
//挂载
# mount /dev/ram /mnt/test

:编译内核时须将block device中的Ramdisk支持选上

ramfs 内存文件系统

针对物理内存

# mkdir  /testRam
# mount -t ramfs none /testRAM
//Ramfs被限制最多可使用内存大小的一半
# mount -t ramfs none /testRAM -o maxsize=2000

tmpfs和ramfs

ramfs会在进程占用内存使用较多的情况下会优于tmpfs;在没有交换分区或进程占用内存较小而不发生swap行为的情况下,两者性能不会有差异
想利用内存的高速IO来提高效能的应用,最好是使用ramfs;想存放临时缓存的应用,最好是用tmpfs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值