linux tmpfs /dev/shm 简述详解程序员

简单描述下什么是tmpfs和/dev/shm

tmpfs是Linux/Unix系统上的一种基于内存的文件系统。可以简单理解为内存文件系统,所以优点就是快。那么缺点就是重启后,内容就没了。
/dev/shm 是一个设备文件,它使用就是tmpfs文件系统。

/dev/shm 这个目录不在硬盘上,而是在内存里,它就所谓的tmpfs。在Redhat/CentOS等linux发行版中默认大小为物理内存的一半。
/dev/shm 是个动态文件系统,如果没有任何文件,它占用的内存实际上就是0字节。
查看 linux 7.2 的 /dev/shm

# free -m 
              total        used        free      shared  buff/cache   available 
Mem:           7823         133        6817           8         872        7614 
Swap:          8191           0        8191 
 
# df -hT 
Filesystem              Type      Size  Used Avail Use% Mounted on 
/dev/mapper/centos-root xfs        40G  5.4G   35G  14% / 
devtmpfs                devtmpfs  3.9G     0  3.9G   0% /dev 
tmpfs                   tmpfs     3.9G     0  3.9G   0% /dev/shm 
tmpfs                   tmpfs     3.9G  8.6M  3.9G   1% /run 
tmpfs                   tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup 
/dev/sda1               xfs       497M  125M  372M  26% /boot 
tmpfs                   tmpfs     783M     0  783M   0% /run/user/0 
tmpfs                   tmpfs     783M     0  783M   0% /run/user/1001

如果觉得/dev/shm 不够用,可以调整
临时修改

#mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。
永久修改

#vi /etc/fstab 
tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0

oracle 11g的amm内存管理模式就是使用/dev/shm,所以有时候修改 MEMORY_TARGET 或者 MEMORY_MAX_TARGET 会出现ORA-00845的错误
此时必须满足条件 memory_max_target <= /dev/shm

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/1762.html

(0)
上一篇 2021年7月15日
下一篇 2021年7月15日

相关推荐

发表回复

登录后才能评论