tmpfs是一种基于内存的文件系统,安装后即可使用,下面小编将针对Linuxtmpfs的用途及大小的调整做个详细介绍,有兴趣的朋友可以来了解下。
tmpfs介绍
tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化
它最大的特点就是它的存储空间在VM(virtualmemory),VM是由linux内核里面的vm子系统管理的。
linux下面VM的大小由RM(RealMemory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。
Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(RealMemory)要慢许多,当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。如果有足够大的物理内存,可以不划分Swap分区。
VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(ThesizeofRM+ThesizeofSwap)。但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。
tmpfs默认的大小是RM的一半,假如你的物理内存是1024M,那么tmpfs默认的大小就是512M
一般情况下,是配置的小于物理内存大小的。
tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是不会被系统回收重新划分的。
当删除tmpfs中文件,tmpfs文件系统驱动程序会动态地减小文件系统并释放VM资源。
#########################
tmpfs的用途
例如:
Oracle中的AutomaticMemoryManagement特性就使用了/dev/shm。
LINUX中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点提升系统性能。
调整tmpfs大小大致有以下三种方法:
1.直接挂载到需要的目录--比如系统的临时目录-可以根据实际需要挂载某个程序的临时文件的目录
[root@bys3~]#mount-ttmpfs-osize=20mtmpfs/tmp
[root@bys3~]#df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda216G10G4.7G69%/
/dev/sda199M21M74M22%/boot
tmpfs502M0502M0%/dev/shm
tmpfs20M020M0%/tmp
由于没有挂载之前/tmp目录下的文件也许正在被使用,因此挂载之后系统也许有的程序不能正常工作。可以写入/etc/fstab,这样重启后也有效。
2./etc/fstab文件来修改/dev/shm的容量(增加size=100M选项即可),修改后,重新挂载即可:
[root@bys3~]#cat/etc/fstab
LABEL=//ext3defaults11
LABEL=/boot/bootext3defaults12
tmpfs/dev/shmtmpfsdefaults,size=600M00
tmpfs/tmptmpfsdefaults,size=25M00
devpts/dev/ptsdevptsgid=5,mode=62000
sysfs/syssysfsdefaults00
proc/procprocdefaults00
LABEL=SWAP-sda3swapswapdefaults00
/dev/sda5swapswapdefaults00
[root@bys3~]#mount-a--测试/etc/fstab无错误,重启OS系统
[oracle@bys3~]$df-h--重启后的信息如下,tmpfs文件系统的对应条目已经改变为配置的
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda216G10G4.7G69%/
/dev/sda199M21M74M22%/boot
tmpfs600M0600M0%/dev/shm
tmpfs25M025M0%/tmp
3./dev/shm建一个tmp目前,并与/tmp绑定。--这方法有点烦琐,不如方法1方便快捷。
[root@bys3~]#mkdir/dev/shm/tmp
[root@bys3~]#chmod1777/dev/shm/tmp
[root@bys3~]#mount--bind/dev/shm/tmp/tmp-注意mount--bind这里bind前是两个-
[root@bys3~]#ls-ld/tmp
drwxrwxrwt2rootroot40Dec812:15/tmp
[root@bys3~]#df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda216G10G4.7G69%/
/dev/sda199M21M74M22%/boot
tmpfs600M0600M0%/dev/shm
tmpfs600M0600M0%/tmp----可以看到/tmp使用到了/dev/shm的空间。
上面就是Linux使用tmpfs的方法介绍了,本文除了介绍tmpfs的用途外,还介绍了调整tmpfs大小的三大方法,因为tmpfs不是块设备,需安装使用。