linux共享内存shm详解

linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等,其中/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。

/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。

/dev/shm的文件系统为tmpfs,即为临时文件系统

shm和内存中的shared部分关联,下面我们做一个实验来看看

首先我们执行free命令查看当前内存使用情况

微信截图_20220804104123.png

然后我们在/dev/shm目录中创建一个文件

dd if=/dev/zero of=/dev/shm/test.file bs=1M count=1024

微信截图_20220804104007.png

我们可以看到shared部分的已经有1027了,buff/cache也增加了大概1G,可用内存减少1G

我们查看当前的shm大小
微信截图_20220804104535.png

然后使用下面命令可以进行修改

mount -o size=16384M  -o remount /dev/shm

微信截图_20220804104551.png

修改shm容量很简单,直接重新挂载该设备并设置size即可修改它的大小

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/872.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。