免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11026 | 回复: 2
打印 上一主题 下一主题

[已解决]/dev/shm 与 mount 为 tmpfs 的/tmp有何区别? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-03 12:37 |只看该作者 |倒序浏览
本帖最后由 consatan 于 2011-12-03 21:33 编辑

RT
kernel 2.6.32 amd64
比如系统物理内存为4GB,swap设置为1.5倍 6GB
/etc/fstab如下设置
  1. tmpfs   /tmp    tmpfs   defaults,size=6G,mode=1777  0  0
复制代码
这样的话  /dev/shm 和/tmp 有何区别???

或者是不是说这样设置后,2者只要存在一个就行???

论坛徽章:
0
2 [报告]
发表于 2011-12-03 16:55 |只看该作者
支持一下,等待答案。

论坛徽章:
0
3 [报告]
发表于 2011-12-03 21:30 |只看该作者
本帖最后由 consatan 于 2011-12-03 21:31 编辑

.........又是自问自答...

因为tmpfs文件系统是使用系统RAM和swap的
所以,如果系统物理内存大小为4GB的话,swap一般是设置为1.5倍于RAM,也就是6GB(当然,这个值想怎么设置,每个人都有自己的见解)
也就是说,系统里所有的tmpfs文件系统最多能使用的空间是4GB + 6GB = 10GB
不管是
/dev/shm
/lib/init/rw
还是 /tmp
它们全部加起来能用的最大容量就是10GB
Debian 6.0.3 amd64中默认是(之后如果没特别说明,“Debian”均为“Debian 6.0.3 amd64”)
/dev/shm 和 /lib/init/rw各占RAM的一半,继续上面的假设,也就是
/dev/shm  2GB
/lib/init/rw  2GB
上面说2GB只是求方便而已,因为系统还会保留一部分内存的
见下面链接的“低 VM:解决方案”
http://www.ibm.com/developerwork ... /l-fs3/index.html#3

所以对于/tmp目录可通过mount的"bind"来挂载在/dev/shm底下
Debian系统可修改 /etc/init.d/mtab.sh
搜索/dev/shm(默认情况下 Debian 是在82行)
然后在其下面添加如下命令
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp
:wq
详情请看 http://www.linuxsir.org/bbs/post2117264-17.html
这样重启后,/tmp就会自动“挂载”到/dev/shm/tmp下,而且同样是tmpfs文件系统,而且和/dev/shm共用2GB的大小(继续上面的假设)

如果要修改/dev/shm的大小,在Debian系统中只要修改 /etc/default/tmpfs中SHM_SIZE变量的值(或者直接在/etc/init.d/mtab.sh中修改SHM_SIZE变量的值,同理,要修改/lib/init/rw的大小的话,修改/etc/init.d/mtab.sh里的RW_SIZE变量值)
比如修改为 8GB(/lib/init/rw和/dev/shm之前只把RAM的内容分配完,但实际上还有6G的swap没使用)
重启后就会生效了

以上为自己通过搜索并理解出来的...如有不对之处,还请指教。

顺便回答自己一楼的最后一个问题,2者可同时存在,也可像上面那样把/tmp“挂载”到/dev/shm/tmp目录中,不建议直接把/tmp bind到 /dev/shm(上面ibm的页面有说),反正记住它们可使用的容量就是RAM+swap就对了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP