免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖

tmpfs(/dev/shm)

tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似像,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储。
而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;
而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。
tmpfs是最好的基于RAM的文件系统。



巧用linux服务器的/dev/shm/,如果合理使用,可以避开磁盘IO不给力,提高网站访问速度。

首先让我们认识一下,什么是tmpfs和/dev/shm/?

tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要存储暂存的文件。它有如下2个优势 : 1. 动态文件系统的大小。2. tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在内存 RAM 中,读写几乎可以是瞬间的。同时它也有一个缺点  tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

tmpfs(/dev/shm)的使用及应用场景

tmpfs是基于内存的,速度是不用说的,硬盘和它没法比。Oracle 中的Automatic Memory Management特性就使用了/dev/shm。另外如果在网站运维中好好利用tmpfs,将有意想不到的收获。我们先在/dev/shm建一个tmp目前,并与/tmp绑定。

[root@AY1212111202285f63122 ~]# mkdir  /dev/shm/tmp

[root@AY1212111202285f63122 ~]# chmod  1777  /dev/shm/tmp         //注意权限

[root@AY1212111202285f63122 ~]# mount --bind  /dev/shm/tmp  /tmp

[root@AY1212111202285f63122 ~]# ls -ld /tmp

drwxrwxrwt 2 root root 40 May 29 21:46 /tmp



调整/dev/shm的大小

---------------------------------------------------------
1、查看大小
df -h /dev/shm


[@more@]2、修改大小(修改fstab文件以便重启生效)
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=4096M 0 0

3、重新挂载
mount -o remount,size=4096M /dev/shm

4、查看修改后的大小
df -h /dev/shm
---------------------------------------------------------

如果是Oracle Enterprise Linux 6.0及以上版本系统,还需要修改:/etc/rc.d/rc.sysinit

1、注释如下语句

#mount -f /dev/shm >/dev/null2>&1

2、在rc.sysinit 中找到如下内容

# Mount all other filesystems (except forNFS and /proc, which is already

# mounted). Contrary to standard usage,

# filesystems are NOT unmounted in singleuser mode.

if [ "$READONLY" !="yes" ] ; then

action $"Mounting local filesystems: " mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev

else

action $"Mounting local filesystems: " mount -a -n -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev

fi

=====> 在该处添加如下部分内容tmpfs

if [ "$READONLY" !="yes" ] ; then

action $"Mounting local filesystems: " mount -a -t tmpfs,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev

else

action $"Mounting local filesystems: " mount -a -n -t tmpfs,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -Ono_netdev

fi

3、重新启动系统

返回列表