linux下的/dev/shm目录

Posted on   风行天下-2080  阅读(414)  评论(0编辑  收藏  举报

https://www.cnblogs.com/oloroso/p/5405113.html

https://www.runoob.com/linux/linux-system-contents.html    (各目录的含义)

https://blog.csdn.net/u011462469/article/details/52298721

linux下的/dev/shm目录

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

简要说明#

/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
通过下面的命令,我们可以看到/dev/shm的文件系统为tmpfs,即为临时文件系统。其他的几个tmpfs的挂载目录,其实质上于/dev/shm是一致的。

  /home/o [o@o-s] [16:22]
  > 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

文件测试#

执行下面命令

  /home/o [o@o-s] [16:18]
  > ls /dev/shm
   
  /home/o [o@o-s] [16:18]
  > 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的文件

  /home/o [o@o-s] [16:19]
  > 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 -m
  total used free shared buff/cache available
  Mem: 7901 248 1191 1025 6461 6571
  Swap: 0 0 0

可以看到,现在shared部分的内存已经有了1025MB,并且buff/cache部分也增加了1G多,可用内存减少了1G。

容量修改#

如果需要使用到这个目录,并且默认的大小不够使用,而其他程序占用的内存又比较少的时候,可以修改器最大占用内存的大小,来达到自己的目的。
其实修改它的原理很简单,对其进行重新挂载即可,挂载的时候指定挂载参数。

  /home/o [o@o-s] [16:38]
  > sudo mount -o size=5128M -o remount /dev/shm

上面对/dev/shm进行了重新挂载,并修改其大小为5G。使用下面的命令查看,可以看到确实已经修改为了5G。

  /home/o [o@o-s] [16:38]
  > 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文件,来修改默认的参数。

mount的参数可以参考如下()

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-01-28 Tomcat安装配置
2018-01-28 CENTOS系统安装及初始化配置相关

随笔 - 618, 文章 - 0, 评论 - 6, 阅读 - 37万

Copyright © 2025 风行天下-2080
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示