linux下的/dev/shm目录
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
缓存了5434
MB的内容在内存中,并且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的参数可以参考如下
http://www.cnblogs.com/oloroso/p/5405099.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理