Linux下的 /dev/shm
2021-12-13 tech linux 2 mins 772 字
关于/dev/shm
- 它是linux下一个目录,不在磁盘上,而是在内存里。
- 它的效率非常高,直接写进内存,无磁盘IO。
- 它默认最大为内存的一半大小,使用df -h命令可以看到。
- 它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
- 默认系统就会加载/dev/shm ,就是所谓的tmpfs。
- tmpfs是一个内存之上构建的文件系统(低内存下也可能会落在swap分区)。
- Oracle 11g的amm内存管理模式就是使用/dev/shm。
调整shm大小
-
临时调整
mount -o remount,size=1500000k /dev/shm
-
永久生效
在/etc/fstab里面添加
none /dev/shm tmpfs defaults,size=8G 0 0
-
调整tmpfs大小
mount -t tmpfs -o size=5G,nr_inodes=5k,mode=700 tmpfs /disk2/tmpfs
- remount 重新加载,数据不丢。(如果umount,数据直接丢失!)
- size=8G或者50% 指定/dev/shm文件系统字节数。默认为内存容量的一半。
- nr_blocks作用和size类似,指定文件系统大小,但是指定的是多少个PAGE_CACHE_SIZE
- nr_inodes=5k 最大inode数量,默认上限为物理内存页数量的一半。
- mode=700 设置跟目录的初始权限