linux中/dev/shm简介与大小修改
/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
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
更多推荐
所有评论(0)