linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等,其中/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。
/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
/dev/shm的文件系统为tmpfs,即为临时文件系统
shm和内存中的shared部分关联,下面我们做一个实验来看看
首先我们执行free命令查看当前内存使用情况
然后我们在/dev/shm目录中创建一个文件
dd if=/dev/zero of=/dev/shm/test.file bs=1M count=1024
我们可以看到shared部分的已经有1027了,buff/cache也增加了大概1G,可用内存减少1G
我们查看当前的shm大小
然后使用下面命令可以进行修改
mount -o size=16384M -o remount /dev/shm
修改shm容量很简单,直接重新挂载该设备并设置size即可修改它的大小,直接在/etc/fstab中添加
tmpfs /dev/shm tmpfs defaults,size=4G 0 0
然后执行下重新挂载命令
mount -o remount /dev/shm
然后再df -h查看一下发现共享内存大小已经修改为4G了。