zoukankan      html  css  js  c++  java
  • tmpfs使用探讨

    一、 什么是tmpfs?

    tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储。

    而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;

    ramdisk(中文名:虚拟内存盘,简称:RAM盘)是通过使用软件将RAM模拟当做硬盘来使用的一种技术。在DOS、windows下由相应的软件利用系统分配给它的内存空间来实现这种模拟,linux系统可以使用其内核支持的机制来实现。
    相对于传统的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后的数据将会丢失,某些时候这不是问题,比如说对于一个加密文档的明文来说。
    但是在一般情况下,传递到RAM盘上的数据都是在硬盘或别处永久贮存的文件的一个拷贝。经由适当的配置,可以实现当系统重启后重新建立虚拟盘。

    而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。

    tmpfs是最好的基于RAM的文件系统。

    oracle 11g引入了memory_target参数,memory_target 和 /dev/shm(即tmpfs)有紧密联系,tmpfs的大小制约了memory_target的使用范围。

     

    二 、tmpfs优势是什么?

    1. 根据需求动态调整大小

    2. 速度快

     

    三、 如何使用tmpfs?

    tmpfs默认情况下会mount到/dev/shm目录下,要使用tmpfs,需要在内核配置时,启用“Virtual memory file system support”。

    为了防止tmpfs使用了全部的VM,有时候要限制大小。

    要创建一个最大为1G的tmpfs文件系统,输入:

    mount tmpfs /dev/shm -t tmpfs -o size=1G

    编辑/etc/fstab文件,添加如下内容:

    tmpfs /dev/shm tmpfs size=1G 00

    四、 扩大tmpfs

    1) 查看tmpfs大小

    [root@drz ~]# df -h
    
    Filesystem      Size  Used Avail Use% Mounted on
    
    /dev/sda3        16G   14G  1.7G  89% /
    
    tmpfs           996M   72K  996M   1% /dev/shm
    
    /dev/sda1       194M   34M  151M  19% /boot

    2) 编辑/etc/fstab

    ## size大小必须是整数

    [root@drz ~]# vi /etc/fstab
    
    tmpfs                   /dev/shm                tmpfs   defaults,size=1500M        0 0
    
    devpts                  /dev/pts                devpts  gid=5,mode=620              0 0
    
    sysfs                   /sys                    sysfs   defaults                       0 0
    
    proc                    /proc                   proc    defaults                       0 0
    
    /dev/sdb1               swap                    swap    defaults                      0 0
    
    /home/swapfile          swap                    swap    defaults                     0 0

    3)重新挂载

    [root@drz ~]# mount -o remount /dev/shm

    4)验证增加的大小

    [root@drz ~]# df -PH
    
    Filesystem      Size  Used Avail Use% Mounted on
    
    /dev/sda3        17G   15G  1.8G  89% /
    
    tmpfs           1.6G   74k  1.6G   1% /dev/shm
    
    /dev/sda1       204M   36M  158M  19% /boot

    五、实际应用

      使用df -h命令刚才已经看到了挂载内存大小的数值,如果没有使用,是没有去真正占用的,只有真正在tmpfs存储数据了,才会去占用。

    比如,tmpfs大小是499M,用了10M大小,内存里就会使用真正使用10M,剩余的489M是可以继续被服务器其他程序来使用的。

    但是因为数据是在内存里,所以断电后文件会丢失,内存数据不会和硬盘中数据一样可以永久保存。

    了解了tmpfs这个特性可以用来提高服务器性能,把一些对读写性能要求较高,但是数据又可以丢失的这样的数据保存在/dev/shm中,来提高访问速度。

    tmpfs用途还是较广的,Linux中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点来提升系统性能。

    比如可以用来放squid程序的缓存文件。当然,还有其他的用途,我们应该想到,tmpfs的挂载点既然能当作普通磁盘使用,也就能当作nfs的共享目录使用。

    但是用tmpfs做nfs的共享需要考虑网卡速度和tmpfs读写速度二者孰为瓶颈,如果网卡速度是瓶颈,那么直接用nfs创建一个普通磁盘目录即可。

    因为tmpfs重启后丢失,使用tmpfs做nfs前,须先从磁盘或用rsync从其他服务器拷贝到tmpfs里。

    更新文件时,先更新磁盘上的文件,或更新rsync的源。然后设置定时进程,每分钟从磁盘或rsync里将程序同步到tmpfs即可。

  • 相关阅读:
    托付和事件的使用
    在使用supervisord 管理tomcat时遇到的小问题
    无法安装vmware tools的解决方PLEASE WAIT! VMware Tools is currently being installed on your system. Dependin
    (转)Openlayers 2.X加载高德地图
    (转)openlayers实现在线编辑
    (转) Arcgis for js加载百度地图
    (转)Arcgis for js加载天地图
    (转) 基于Arcgis for Js的web GIS数据在线采集简介
    (转) Arcgis for js之WKT和GEOMETRY的相互转换
    (转)Arcgis for Js之Graphiclayer扩展详解
  • 原文地址:https://www.cnblogs.com/felixzh/p/9239478.html
Copyright © 2011-2022 走看看