linux中/dev/shm简介与大小修改

简介

linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等。
/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)
/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
通过下面的命令,我们可以看到/dev/shm的文件系统为tmpfs,即为临时文件系统。其他的几个tmpfs的挂载目录,其实质上于/dev/shm是一致的。

[root@localhost /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        222M        1.3G        9.9M        315M        1.3G
Swap:          2.0G          0B        2.0G
[root@localhost /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/sda3                 18G  5.0G   13G  28% /
devtmpfs                 895M     0  895M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M  9.9M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/sda1                297M  157M  140M  53% /boot
tmpfs                    182M     0  182M   0% /run/user/0
/dev/mapper/centos-data   40G   33M   40G   1% /xswork

实操

验证/dev/shm存储位置

查看当前环境

[root@localhost /]# ls /dev/shm/
[root@localhost /]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         222        1281           9         315        1381
Swap:          2047           0        2047

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

[root@localhost /]# dd if=/dev/zero of=/dev/shm/123.random bs=1M count=1024
dd: error writing ‘/dev/shm/123.random’: No space left on device
910+0 records in
909+0 records out
953970688 bytes (954 MB) copied, 7.10565 s, 134 MB/s
[root@localhost /]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         222         369         919        1227         470
Swap:          2047           0        2047

可以看到内存使用率出现了变化,大家可以注意到,虽然创建了1G的文件,但是/dev/shm实际挂载空间只有910M,因此报了dd: error错误,但是并不影响文件的创建。

修改/dev/shm 大小

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

方式一:

>mount -o size=1024M  -o remount /dev/shm

方式二:

# vim /etc/fstab
tmpfs       /dev/shm    tmpfs  defaults,size=512m   0    0
# mount -o remount /dev/shm
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐