作用

  • linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等。
    /dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)

简要说明

  • /dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
    通过下面的命令,我们可以看到/dev/shm的文件系统为tmpfs,即为临时文件系统。其他的几个tmpfs的挂载目录,其实质上于/dev/shm是一致的。
> df -h文件系统        容量  已用  可用 已用% 挂载点
dev             3.9G     0  3.9G    0% /dev
run             3.9G  656K  3.9G    1% /run
/dev/sda2        58G   12G   43G   22% /
tmpfs           3.9G  1.0G  2.9G   26% /dev/shm
tmpfs           3.9G     0  3.9G    0% /sys/fs/cgroup
tmpfs           3.9G     0  3.9G    0% /tmp
/dev/sdb1        58G   24G   32G   44% /mnt/data
/dev/sda1       488M   26M  463M    6% /boot
tmpfs           791M     0  791M    0% /run/user/1000

文件测试

  • 执行下面命令
> ls /dev/shm > free -m
              total        used        free      shared  buff/cache   available
Mem:           7901         249        2217           1        5434        7595
Swap:             0
  • 我们可以看到当前/dev/shm目录为空。当前系统使用的内存为249MB,可用内存为7595MB,而buff/cache缓存了5434MB的内容在内存中,并且shared部分仅为1MB大小。
    这个缓存的数据可以通过修改/proc/sys/vm/drop_caches文件的内容为3来清理掉。这里就不做了。

  • 现在我们在/dev/shm目录中创建一个大小为1G的文件

> dd if=/dev/zero of=/dev/shm/123.random bs=1M count=1024记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,0.322718 秒,3.3 GB/秒
  • 看看操作后的结果
> free -mtotal        used        free      shared  buff/cache   available
Mem:           7901         248        1191        1025        6461        6571
Swap:             0           0           0
  • 可以看到,现在shared部分的内存已经有了1025MB,并且buff/cache部分也增加了1G多,可用内存减少了1G。

容量修改

  • 如果需要使用到这个目录,并且默认的大小不够使用,而其他程序占用的内存又比较少的时候,可以修改器最大占用内存的大小,来达到自己的目的。
    其实修改它的原理很简单,对其进行重新挂载即可,挂载的时候指定挂载参数。
> sudo mount -o size=5128M  -o remount /dev/shm
上面对/dev/shm进行了重新挂载,并修改其大小为5G。使用下面的命令查看,可以看到确实已经修改为了5G。> df -h
文件系统        容量  已用  可用 已用% 挂载点
dev             3.9G     0  3.9G    0% /dev
run             3.9G  656K  3.9G    1% /run
/dev/sda2        58G   12G   43G   22% /
tmpfs           5.1G  1.0G  4.1G   20% /dev/shm
tmpfs           3.9G     0  3.9G    0% /sys/fs/cgroup
tmpfs           3.9G     0  3.9G    0% /tmp
/dev/sdb1        58G   24G   32G   44% /mnt/data
/dev/sda1       488M   26M  463M    6% /boot
tmpfs           791M     0  791M    0% /run/user/1000
  • 也可以通过修改/etc/fstab文件,来修改默认的参数。
/etc # cat fstab
proc            /proc           proc    defaults        0       0
sysfs           /sys            sysfs   defaults        0       0
tmpfs           /dev            tmpfs   defaults        0       0
tmpfs           /tmp            tmpfs   defaults,size=120M      0       0
tmpfs           /var/run        tmpfs   defaults        0       0

linux下的shm目录相关推荐

  1. 【OS】Linux下/dev/shm的作用及ORA-00845错误的处理

    [OS]Linux下/dev/shm的作用 对/dev/shm认识 发表于 2011 年 09 月 25 日 由 惜分飞 一./dev/shm理论 /dev/shm/是linux下一个非常有用的目录, ...

  2. dev shm与oracle,【OS】Linux下/dev/shm的作用及ORA-00845错误的处理

    Linux操作系统,oracle 11.2.0.4 启动实例时出现如下错误: SQL> startup nomount pfile=/u03/app/oracle/11.2.0/db/dbs/i ...

  3. mysql 多数据库文件_今天突然发现我的Linux下MySQL数据库目录多了好多文件

    今天再次重现Blog了,虽然很忙,还是要来写一下Blog的,嘻,首先还是一样先谢谢Sery 今天发现了我的Linux下Mysql数据库目录多了好多Mysql-bin.0000X这些文件,经过自己查找资 ...

  4. linux下的主要目录

    2019独角兽企业重金招聘Python工程师标准>>> [Linux系统目录结构] 登录系统后,在当前命令窗口下输入 ls / 你会看到 以下是对这些目录的解释: /bin bin是 ...

  5. Linux_linux基础命令(增删查,权限,Linux下的重要目录,重要命令(. du, df, top, free, pstack, su, sudo).安装gcc/g++, gdb, vim )

    r:表示可读w:表示可写x:表示可执行也可以用数字表示这一点我们会在修改文件权限说明.对于文件夹的rwx表示:r表示可读及可以查看文件夹内容可以ls查看w表示可写及可以向文件夹中传送内容如文件x表示可 ...

  6. 怎么查这个文件在linux下的哪个目录

    因为要装pl/sql所以要查找tnsnames.ora文件..看看怎么查这个文件在linux下的哪个目录 find / -name tnsnames.ora 查到: /opt/app/oracle/p ...

  7. 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

    解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 参考文章: (1)解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 (2)http ...

  8. linux root所在目录,Linux下误删root目录

    Linux下误删root目录 发布时间:2008-05-26 01:09:21来源:红联作者:Baidoa 下午用vi编辑文件,保存退出时误按~键,按成wq~,结果目录下产生一个名为~的文件.因为以前 ...

  9. Linux下 C++遍历目录文件

     可参考如下代码或者参考链接博客. 测试代码: #include <iostream> #include <stdio.h> #include <unistd.h> ...

最新文章

  1. Java程序员从笨鸟到菜鸟之(七十)细谈Spring(三)IOC和spring基本配置详解
  2. 28335之SCI模块
  3. SAP CRM fiori application delete if only one note header
  4. 卡屏java_Java drawImage到屏幕上一卡一卡的
  5. 【HDU - 3974】 Assign the task (dfs序 + 线段树维护 区间更新+ 单点查询)
  6. ETL异构数据源Datax_datax-web简述_09
  7. 输入框回车多个文本_输入框测试用例,你真的了解输入框测试嘛!
  8. Vue源码学习(三)——数据双向绑定
  9. 构造函数与new关键字
  10. pytorch中hook的使用
  11. MOOC电子科技大学 离散数学 集合论 第一次作业答案
  12. html如何制作斜线表头表格,2种方法教你怎样在WPS excel中绘制表格斜线表头
  13. 信息安全:需求进一步升级 行业再上风口
  14. fusioncharts java_FusionCharts在Java中的基本使用(2)
  15. Dram学习笔记(1) Dram相关基础知识
  16. 盘点人工智能高薪职位
  17. Ubuntu16.04+Titan Xp+Tensorflow1.3+Cuda8.0+CuDNN6
  18. SaaS平台产品架构设计
  19. Protel99SE添加泪滴焊盘
  20. 你当前无权访问该文件夹 解决你当前无权访问该文件夹拒绝你访问该文件夹

热门文章

  1. 数控圈Fuanc三菱M70M80螺补自动补偿输入软件
  2. php excel导出数据空白,为什么 PHPexecl 导出的表格下面是一片空白?
  3. 八爪鱼爬取数据—以京东众筹为例
  4. 经济法学期末考试重点最终版
  5. 5.FANUC机器人程序指令分享
  6. Python玩预测的七种方法,必看
  7. C# 服务端监听客户端连接
  8. 光通讯元件的程序烧录
  9. Chloroplot叶绿体基因组圈图可视化的新工具
  10. 解决QNetworkAccessManager 请求返回UnknownNetworkError,无法继续请求问题