您的位置:首页 > 运维架构 > Linux

linux下的/dev/shm目录

2016-04-18 17:04 399 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: