zoukankan      html  css  js  c++  java
  • 【服务器环境搭建-Centos】tmpfs,【转载】

    转载来源:http://www.linuxidc.com/Linux/2013-12/93747.htm

    • tmpfs介绍

      tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化
      它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。
      linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。因此tmpfs最大的存储空间可达(The size of RM + The size of Swap)。 但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。

      tmpfs默认的大小是RM的一半,假如你的物理内存是1024M,那么tmpfs默认的大小就是512M

      一般情况下,是配置的小于物理内存大小的。

      tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是不会被系统回收重新划分的。
      当删除tmpfs中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源。


      Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。如果有足够大的物理内存,可以不划分Swap分区。

      关于SWAP的增加详见:  点击打开链接 http://www.linuxidc.com/Linux/2013-12/93746.htm

    • tmpfs有没有缺点呢?
      当然有,由于它的数据是在VM里面,因此断电或者你卸载它之后,数据就会立即丢失,这也许就是它叫tmpfs的原故。不过这其实不能说是缺点。那tmpfs到底有什么用呢?
    • tmpfs的用途

    例如:
    Oracle 中的Automatic Memory Management特性就使用了/dev/shm。
    LINUX中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点提升系统性能。

    调整tmpfs大小大致有以下三种方法:

    1.直接挂载到需要的目录--比如系统的临时目录-可以根据实际需要挂载某个程序的临时文件的目录

    [root@bys3 ~]# mount -t tmpfs -o size=20m tmpfs /tmp
    [root@bys3 ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda2 16G 10G 4.7G 69% /
    /dev/sda1 99M 21M 74M 22% /boot
    tmpfs 502M 0 502M 0% /dev/shm
    tmpfs 20M 0 20M 0% /tmp
    由于没有挂载之前/tmp目录下的文件也许正在被使用,因此挂载之后系统也许有的程序不能正常工作。可以写入/etc/fstab,这样重启后也有效。

    2./etc/fstab文件来修改/dev/shm的容量(增加size=100M选项即可),修改后,重新挂载即可:

    [root@bys3 ~]# cat /etc/fstab
    LABEL=/ / ext3 defaults 1 1
    LABEL=/boot /boot ext3 defaults 1 2
    tmpfs /dev/shm tmpfs defaults,size=600M 0 0
    tmpfs /tmp tmpfs defaults,size=25M 0 0
    devpts /dev/pts devpts gid=5,mode=620 0 0
    sysfs /sys sysfs defaults 0 0
    proc /proc proc defaults 0 0
    LABEL=SWAP-sda3 swap swap defaults 0 0
    /dev/sda5 swap swap defaults 0 0
    [root@bys3 ~]# mount -a --测试/etc/fstab无错误,重启OS系统
    [oracle@bys3 ~]$ df -h --重启后的信息如下,tmpfs文件系统的对应条目已经改变为配置的
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda2 16G 10G 4.7G 69% /
    /dev/sda1 99M 21M 74M 22% /boot
    tmpfs 600M 0 600M 0% /dev/shm
    tmpfs 25M 0 25M 0% /tmp

    3./dev/shm建一个tmp目前,并与/tmp绑定。 --这方法有点烦琐,不如方法1方便快捷。

    [root@bys3 ~]# mkdir /dev/shm/tmp
    [root@bys3 ~]# chmod 1777 /dev/shm/tmp
    [root@bys3 ~]# mount --bind /dev/shm/tmp /tmp -注意mount --bind 这里bind前是两个-
    [root@bys3 ~]# ls -ld /tmp
    drwxrwxrwt 2 root root 40 Dec 8 12:15 /tmp
    [root@bys3 ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda2 16G 10G 4.7G 69% /
    /dev/sda1 99M 21M 74M 22% /boot
    tmpfs 600M 0 600M 0% /dev/shm
    tmpfs 600M 0 600M 0% /tmp ----可以看到/tmp使用到了 /dev/shm的空间。转载

  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/yingsong/p/5942567.html
Copyright © 2011-2022 走看看