tmpfs

tmpfs是一种虚拟内存文件系统, 它的存储空间在VM里面,现在大多数操作系统都采用了虚拟内存管理机制, VM(Virtual Memory) 是由Linux内核里面的VM子系统管理. VM的大小由RM(Real Memory)和swap组成, RM就是物理内存, swap是通过硬盘虚拟出来的内存空间, 大小是可以配置的. swap的读写速度相对RM(Real Memory)要慢许多. 在物理内存不足时一个进程申请内存, 内核的VM子系统就会把RM里面的一些不常用的数据交换到swap里面, 在需要使用这些数据时再从swap交换到RM里.
tmpfs最大可用的存储空间等于 RM + swap, 但是tmpfs本身不知道实际使用的空间是RM还是swap.

1
2
mkdir /tmp/memory
mount -t tmpfs -o size=1024M tmpfs /tmp/memory

上面的命令分配了1GB的VM到/tmp/memory目录下, 可以用df命令查看. tmpfs一个优点就是它实际使用的空间是随着实际存储的数据而变化的, 如果/tmp/memory目录下什么也没有, tmpfs并不占用VM. 参数1024m只是告诉内核这个挂载点最大可用的VM为1024m, 如果不设置这个参数, tmpfs默认的大小是RM的一半, 假如物理内存是8GB,那么tmpfs默认的大小就是4GB.

实际应用一: 将内存挂载到文件系统

1
2
3
4
#手动挂载:
mount -t tmpfs -o size=2g tmpfs /tmp/tbls
#启动时自动挂载: 修改/etc/fstab,添加如下一行
tmpfs /tmp/tbls tmpfs size=2g 0 0

实际应用二: 快速消耗内存. 下面的脚本将占用1GB内存1个小时, 注意需要root权限

1
2
3
4
5
6
7
8
#!/bin/bash
mkdir /tmp/memory
mount -t tmpfs -o size=1024M tmpfs /tmp/memory
dd if=/dev/zero of=/tmp/memory/block
sleep 3600
rm /tmp/memory/block
umount /tmp/memory
rmdir /tmp/memory

ramfs

ramfs是Linux下一种基于RAM做存储的文件系统, 可以把ramfs理解为在普通的HDD上建立了一个文件系统, 而现在HDD被替换成了RAM. 因为是RAM做存储所以会有很高的读写速度. 在ramfs中不会使用swap. 但是ramfs有一个问题是它会吃光系统所有的内存, 即使mount时指定了大小. 同时它只能被root用户访问.

1
2
sudo mount -t ramfs -o size=10M ramfs ./ramfs/
sudo dd if=/dev/zero of=./ramfs/test.file bs=1M count=20

测试时你会发现上面这个操作是能成功的,如果直接写一个比内存更大的文件,你会发现瞬间系统就卡住了. 另外dd命令必须要有root权限

1
dd: opening `./ramfs/test.file': Permission denied

df只使用h选项是无法显示ramfs的内容的, 要用-a参数

1
2
linux-numy:~ # df -ah | grep "/mnt/ram"
ramfs 0 0 0 - /mnt/ram

ramfs与tmpfs的区别是:

  • 达到空间上限时可以继续写入
  • 非固定大小
  • 不会使用swap
1
2
3
4
# 不指定大小则为内存大小
mount -t tmpfs tmpfs /tmp/mem1/
# ramfs需要使用df -a 或 mount -t ramfs 选项才能查看到,大小都是0,但不影响使用
mount -t ramfs ramfs /tmp/mem1/

[转帖]Linux的tmpfs和ramfs的更多相关文章

  1. Linux下tmpfs与ramfs的区别

      ramfs是Linux下一种基于RAM做存储的文件系统.在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储 ...

  2. Linux的tmpfs和ramfs

    tmpfs tmpfs是一种虚拟内存文件系统, 它的存储空间在VM里面,现在大多数操作系统都采用了虚拟内存管理机制, VM(Virtual Memory) 是由Linux内核里面的VM子系统管理. V ...

  3. Linux下tmpfs介绍及使用

    tmpfs介绍 tmpfs是一种虚拟内存文件系统,而不是块设备.是基于内存的文件系统,创建时不需要使用mkfs等初始化它最大的特点就是它的存储空间在VM(virtual memory),VM是由lin ...

  4. linux里tmpfs文件系统

    linux里tmpfs文件系统 是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的Ramfs.Tmpfs可以使用物理内存,也可以使用交换分区. umoun ...

  5. linux之tmpfs

    1.概述 tmpfs是ramfs的衍生品,ramfs是基于RAM的文件系统,不能使用swap空间:tmpfs可以动态释放空间.可以使用swap空间.ramfs不能控制使用内存的大小容易使内存爆掉:而t ...

  6. [转帖]Linux 硬件和系统配置查看命令小结

    https://blog.csdn.net/strongwangjiawei/article/details/8208825 转帖了不少 发现自己记住的还是不多.. Linux 硬件和系统配置查看命令 ...

  7. [转帖]Linux文件系统详解

    Linux文件系统详解 https://www.cnblogs.com/alantu2018/p/8461749.html 贼复杂.. 从操作系统的角度详解Linux文件系统层次.文件系统分类.文件系 ...

  8. Linux的tmpfs文件系统

    转载:http://blog.csdn.net/wxwsixis/article/details/5752186 前几天发现服务器的内存(ram)和swap使用率非常低,于是就想这么多的资源,不用岂不 ...

  9. 转://Linux下tmpfs介绍及使用

    tmpfs介绍 tmpfs是一种虚拟内存文件系统,而不是块设备.是基于内存的文件系统,创建时不需要使用mkfs等初始化它最大的特点就是它的存储空间在VM(virtual memory),VM是由lin ...

  10. [转帖]Linux系统/dev/mapper目录浅谈

    Linux系统/dev/mapper目录浅谈   Linux系统的一般的文件系统名称类似于/dev/sda1或/dev/hda1,但是今天在进行系统维护的时候,利用df -h 命令敲出了/dev/ma ...

随机推荐

  1. DVWA Insecure CAPTCHA(不安全的验证码)全等级

    Insecure CAPTCHA(不安全的验证码) 目录: Insecure CAPTCHA(不安全的验证码) 1. Low 2.Medium 3. High 4.Impossible 加载验证码需要 ...

  2. .NET周刊【1月第1期 2023-01-07】

    一月头条:C# 被评为2023年度编程语言! 在TIOBE指数的历史上,祝贺 C# 首次赢得了年度编程语言奖项!C# 已经是十大顶尖选手超过两个十年了,现在它正在迎头赶上四大语言,凭借一年内最大增幅( ...

  3. ubuntu中vim乱码以及执行shell脚本时出现乱码

    vim打开文件中文出现乱码情况,可以参考如下办法: 在vim /usr/share/vim/vimrc文件末尾中加入 (这个vimrc文件是Vim 的系统级配置文件.文档.插件.语法高亮定义.颜色方案 ...

  4. 面试官:说一说你的第一个Java程序是怎么跑起来的

    面试官:"说一说你第一个Java程序是怎么跑起来的?" 我:"啊,您是说Hello World吗?" 面试官:"嗯,没错,几十年过去了,还是hello ...

  5. CSS 基础 5 - CSS 选择器

    基础 #id{} ID 选择器 .class{} 类选择器 tag{} 标签选择器,tag 可以是 h1, p, div, span, img, nav, footer... *{} 通用选择器,选择 ...

  6. 窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理

    本文分享自华为云社区<窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理>,作者: Lion Long. 当涉及网络性能优化和数据传输可靠性时,TCP/IP滑动窗口是一个关键的技术.本文 ...

  7. 手把手教你使用ModelArts的自动学习识别毒蘑菇分类

    摘要:本文介绍了ModelArts如何通过自动学习进行毒蘑菇的识别. 想当年,白雪公主吃了毒蘑菇,换来了白马王子的一吻.如果白雪公主没有吃毒蘑菇,还会遇到白马王子吗?张小白觉得不见得--说不定她会遇到 ...

  8. 云原生时代,政企混合云场景IT监控和诊断的难点和应对之道

    摘要:正是因为政企IT架构云化的云原生架构,相比之前的单体烟囱式架构,在监控诊断方面有着更多的难点和挑战,这也在业界催生出大量相关的标准和工具. 本文分享自华为云社区<[华为云Stack][大架 ...

  9. 华为AppCube入选Forrester《中国低代码平台市场分析报告》

    摘要:知名研究与分析机构Forrester于11月11日发布<中国低代码平台市场分析报告(The State Of Low-Code Platforms In China)>,AppCub ...

  10. mysql新增数据库新增用户并授权用户

    -- 创建数据库CREATE DATABASE  baseName; -- 创建用户CREATE USER 'userName' @ '访问限制' IDENTIFIED BY 'password'; ...