把内存当硬盘用: tmpfs & ramfs & ramdisk
时间:2011-03-13
来源:互联网
转我自己的博客: http://mgampkay.blog.163.com/blo ... 5969/?newFollowBlog
一.tmpfs
某天我学了个“奇巧淫技”:在/etc/fstab 里加上一句none /tmp tmpfs defaults 0 0,重起之后/tmp就在内存里了,因为/tmp放的是临时文件,这样每次关机就清空,又减少硬盘读写,而且读写又快,多好。
tmpfs是相当强大,它的空间能动态调整(但是大小不能超过上限),往里面塞文件它就变大,删文件就会变小。
看我往里面塞个1G的文件:
dd if=/dev/zero of=/tmp/bigfile count=1000000 bs=1024
内存里有1352M的cache(原来是300多M的)。
可以试下复制/dev/urandom而不是/dev/zero,再开个top,就能看cache慢慢增加了,可以看出tmpfs在cache里。
当内存不够用的时侯,就动用交换分区(swap)了,这可是影响性能的。
还有个方法是用mount挂载。
先建个文件夹吧,我在"我家"建了个.tmp_ram
mkdir ~/.tmp_ram
然后就是mount了
sudo mount -t tmpfs -o size=256M tmpfs ~/.tmp_ram
size指定的是能用的内存的上限。
这样,向~/.tmp_ram里写的文件其实都在内存而不是硬盘。
突然想到一个很好的用处,那就是把chrome的cache放内存了。
sudo mount -t tmpfs -o size=384M tmpfs ~/.cache/google-chrome
去掉sudo然后加到/etc/rc.local,那样每次开机就自动挂载。
(其实这样没次都清空cache也有点影响上网的体验的,不过我还是喜欢保护硬盘,节省空间...)
二.ramfs
ramfs能实现类似的功能:
sudo mount -t ramfs -o size=256m ramfs ~/.tmp_ram
如果你往里面塞超过mount时设置的上限的文件,它不会提示空间不足,相反它突破你设的上限,动态增大了。而且ramfs不会用swap。
三. ramdisk
有没发现在/dev里面有ram0、ram1等等ramN设备文件,这就是ramdisk。
ramdisk和ramfs的差别之一是ramdisk的大小是固定的(通常只有10几M的大小,编译内核时设定的),可以在系统启动的时候用命令行参数调整。
要用ramdisk要先在/dev/ramN里建文件系统:(我这里用ext2)
sudo mke2fs -m 0 /dev/ram0
然后是挂载:
sudo mount /dev/ram0 ~/.tmp_ram
四.参考
linux kernel的文档:
tmpfs : http://lxr.linux.no/linux+v2.6.3 ... lesystems/tmpfs.txt
ramfs : http://lxr.linux.no/linux+v2.6.3 ... ootfs-initramfs.txt
ramdisk: http://lxr.linux.no/linux+v2.6.3 ... lockdev/ramdisk.txt
一.tmpfs
某天我学了个“奇巧淫技”:在/etc/fstab 里加上一句none /tmp tmpfs defaults 0 0,重起之后/tmp就在内存里了,因为/tmp放的是临时文件,这样每次关机就清空,又减少硬盘读写,而且读写又快,多好。
tmpfs是相当强大,它的空间能动态调整(但是大小不能超过上限),往里面塞文件它就变大,删文件就会变小。
看我往里面塞个1G的文件:
dd if=/dev/zero of=/tmp/bigfile count=1000000 bs=1024
内存里有1352M的cache(原来是300多M的)。
可以试下复制/dev/urandom而不是/dev/zero,再开个top,就能看cache慢慢增加了,可以看出tmpfs在cache里。
当内存不够用的时侯,就动用交换分区(swap)了,这可是影响性能的。
还有个方法是用mount挂载。
先建个文件夹吧,我在"我家"建了个.tmp_ram
mkdir ~/.tmp_ram
然后就是mount了
sudo mount -t tmpfs -o size=256M tmpfs ~/.tmp_ram
size指定的是能用的内存的上限。
这样,向~/.tmp_ram里写的文件其实都在内存而不是硬盘。
突然想到一个很好的用处,那就是把chrome的cache放内存了。
sudo mount -t tmpfs -o size=384M tmpfs ~/.cache/google-chrome
去掉sudo然后加到/etc/rc.local,那样每次开机就自动挂载。
(其实这样没次都清空cache也有点影响上网的体验的,不过我还是喜欢保护硬盘,节省空间...)
二.ramfs
ramfs能实现类似的功能:
sudo mount -t ramfs -o size=256m ramfs ~/.tmp_ram
如果你往里面塞超过mount时设置的上限的文件,它不会提示空间不足,相反它突破你设的上限,动态增大了。而且ramfs不会用swap。
三. ramdisk
有没发现在/dev里面有ram0、ram1等等ramN设备文件,这就是ramdisk。
ramdisk和ramfs的差别之一是ramdisk的大小是固定的(通常只有10几M的大小,编译内核时设定的),可以在系统启动的时候用命令行参数调整。
要用ramdisk要先在/dev/ramN里建文件系统:(我这里用ext2)
sudo mke2fs -m 0 /dev/ram0
然后是挂载:
sudo mount /dev/ram0 ~/.tmp_ram
四.参考
linux kernel的文档:
tmpfs : http://lxr.linux.no/linux+v2.6.3 ... lesystems/tmpfs.txt
ramfs : http://lxr.linux.no/linux+v2.6.3 ... ootfs-initramfs.txt
ramdisk: http://lxr.linux.no/linux+v2.6.3 ... lockdev/ramdisk.txt
作者: mgampkay 发布时间: 2011-03-13
很好,收藏
突然想到一个很好的用处,那就是把chrome的cache放内存了。
sudo mount -t tmpfs -o size=384M tmpfs ~/.cache/google-chrome
去掉sudo然后加到/etc/rc.local,那样每次开机就自动挂载。
放在/etc/rc.local中,要用绝对路径 sudo mount -t tmpfs -o size=384M tmpfs ~/.cache/google-chrome
去掉sudo然后加到/etc/rc.local,那样每次开机就自动挂载。
作者: 相思爱文 发布时间: 2011-03-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28