分类: LINUX
2011-03-23 13:13:10
原文链接 http://zhaohang3031.blog.163.com/blog/static/17840245200902211446525/
问题:
在用 mysqlhotcopy 备份数据库时,提示 /dev/shm 设备空间不足!
理论理解:
在红帽企业版Linux的应用程序如果遵循POSIX或者使用GLIBC(2.2和更高版本),通常使用/dev/shm作共享内存(shm_open,shm_unlink)。/dev/shm是一个临时文件系统(tmpfs),可以从/etc/fstab中mount。因此,支持标准的参数例如"size",可以用来增加或者减少在/dev/shm上的tmpfs大小.(默认的,它的大小是系统RAM的一半)。
linux下/dev/shm是什么?
默认系统就会加载/dev/shm ,share memory,它就是所谓的tmpfs。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。
tmpfs有以下优势:
1、动态文件系统的大小。
2、tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。
3、tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。
解决方法:
例如:为了将/dev/shm的大小增加到1GB,修改/etc/fstab的这行:默认的:
none /dev/shm tmpfs defaults 0 0
改成:
none /dev/shm tmpfs defaults,size=1024m 0 0
size参数也可以用G作单位:size=1G。
重新mount /dev/shm使之生效:
# mount -o remount /dev/shm
或者:
# umount /dev/shm
# mount -a
马上可以用"df -h"命令检查变化。