tmpfs介绍
tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化。
它最大的特点就是它的存储空间在内存中(虚拟为硬盘),VM(虚拟内存)是由linux内核里面的vm子系统管理的。
linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。
Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,当一个进程申请一定数量的内存时。
如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面。
如果需要重新使用这些数据再把它们从Swap交换到RM里面。如果有足够大的物理内存,可以不划分Swap分区。
VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(物理内存+swap交换内存)。
但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。
tmpfs默认的大小是RM的一半,假如你的物理内存是1024M,那么tmpfs默认的大小就是512M。
一般情况下,是配置的小于物理内存大小的。
tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是不会被系统回收重新划分的。
当删除tmpfs中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源。
Oracle 中的Automatic Memory Management特性就使用了/dev/shm。
LINUX中可以把一些程序的临时文件放置在tmpfs中比如session文件,提升性能。
实验环境:
云主机:centos7.1 x86_64 2 Core 8G MEM
实现方式1 直接创建:
[root@a ~]# uname -a Linux a.novalocal 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [root@a ~]# mkdir /mnt/tmp //创建虚拟硬盘挂载点 [root@a ~]# mount -t tmpfs -o size=500m tmpfs /mnt/tmp/ //创建一个tmpfs文件系统,大小为500m,挂载到/mnt/tmp [root@a ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.2G 18G 7% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 8.3M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 500M 0 500M 0% /mnt/tmp
如果不想用了,直接umount掉/mnt/tmp
实现方式2 配置fstab:
[root@a ~]# vi /etc/fstab 添加一行 tmpfs /mnt/tmp2 tmpfs defaults,size=4000M 0 0 挂载点 大小 [root@a ~]# mount -a //挂载fstab中所有定义的选项 [root@a ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.2G 18G 7% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 8.3M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 4.0G 0 4.0G 0% /mnt/tmp2
测试:
[root@a ~]# time dd if=/dev/zero bs=1024 count=3000000 of=/mnt/tmp2/3Gb.file 3000000+0 records in 3000000+0 records out 3072000000 bytes (3.1 GB) copied, 4.24275 s, 724 MB/s real 0m4.244s user 0m0.248s sys 0m3.994s
这是用的云主机测试,速度大约比物理硬盘快10倍,如果不是云主机,物理机的话,性能还会高。
注意:系统重启后,数据丢失!这不是保存到物理硬盘。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3456.html