但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上便是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍旧可为其它运用程序所利用,但它所占用的100M内存,是绝不会被系统回收重新划分的。
默认系统启动就会加载/dev/shm ,它便是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。tmpfs是一个文件系统,而不是块设备,只要安装后就可以利用了。
tmpfs有以下上风:

1)动态文件系统的大小。
2)tmpfs的另一个紧张的好处是它闪电般的速率,由于范例的tmpfs文件系统会完备驻留在RAM中,读写险些可以是瞬间的。
3)tmpfs数据在重新启动之后不会保留,由于虚拟内存实质上便是易失落的。以是有必要做一些脚本做诸如加载,绑定的操作。
二、修正/dev/shm大小默认的最大一半内存大小在某些场合可能不足用,并且默认的inode数量很低一样平常都要调高些,这时可以用mount命令来管理它。
mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。
如果须要永久修正/dev/shm的值,须要修正/etc/fstab
tmpfs /dev/shm tmpfs defaults,size=16G 0 0
三、/dev/shm运用首先在/dev/shm建个tmp文件夹,然后与实际/tmp绑定。
mkdir /dev/shm/tmpchmod 777 /dev/shm/tmpmount --bind /dev/shm/tmp /tmp
在利用mount –bind olderdir newerdir命令来挂载一个目录到另一个目录后,newerdir的权限和所有者等所有信息会发生变革。挂载后的目录继续了被挂载目录的所有属性,除了名称。Oracle11g的amm内存管理模式便是利用/dev/shm,以是有时候修正MEMORY_TARGET或者MEMORY_MAX_TARGET会涌现ORA-00845的缺点。
其余,可以把一些程序产生的临时文件存放到tmp目录下,其余比如像memcached或php-fpm可以利用unix sock的办法连接,然后把unix sock文件放在此目录下以此来提升性能。
巧用linux做事器的/dev/shm/,如果合理利用,可以避开磁盘IO不给力,提高网站访问速率。后面会分享更多Linux方面的干货,感兴趣的朋友可以关注一下~