将mmap
在Linux中的tmpfs卷中导致活动页面存储在RAM中两次吗?我的理解是内核使用特殊的shmem_mmap
操作来映射ramdisks,因此每个页面只消耗一次资源。但是我正在使用xen虚拟机,并且我也假设虚拟内存操作会出现问题。
背景信息:我正在AWS中的tmpfs卷上试验mongodb(即在xen虚拟机上)。
答案 0 :(得分:1)
活动的tmpfs页面不会存储两次(这对于大型tmpfs来说非常浪费)。您可能希望阅读tmpfs docs at kernel.org,特别是对于mongo"如果超大tmpfs实例,则机器将死锁,因为OOM处理程序将无法释放该内存。"我没有关注你在tmpfs卷中做什么,"但我认为你的意思是文件系统在进行内存映射,而不是一个进程,只需要像任何块设备一样写入文件系统。
看起来你有一个关于Xen和虚拟内存的隐藏问题,我建议你也阅读Brendan Gregg's Xen Feature Detection post(你想要"页面表")并且可能看一看在Intel's Virtualization Technology site,自2014年年中至今,AWS表示他们在EC2 Instance Types页面上使用了英特尔Sandy Bridge和Ivy Bridge。