最近,我对基于Linux内核内存的各种文件系统感到好奇。
Note:
就我而言,与更好地理解标题中提出的问题相比,以下问题应被视为或多或少是可选的。我在下面问他们,因为我相信回答它们可以更好地帮助我理解这些差异,但是由于我的理解有限,因此其他人可能会更好。我准备接受任何可以丰富我对标题中提到的三个文件系统之间差异的理解的答案。
最终,我认为我想挂载一个可用的文件系统,hugepages,
尽管一些轻松的研究(并且仍在进行更轻松的修改)使我相信a rewritable hugepage mount
不是一个选择。我错了吗?这里有什么机制?
另外关于 hugepages:
uname -a
3.13.3-1-MANJARO \
#1 SMP PREEMPT \
x86_64 GNU/Linux
tail -n8 /proc/meminfo
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 8223772 kB
DirectMap2M: 16924672 kB
DirectMap1G: 2097152 kB
(以下是/ proc / meminfo和/ proc / cpuinfo的全文版本)
以上是怎么回事?我是否已经分配hugepages?
了DirectMap
内存页和hugepages?
更新 @Gilles稍加推敲之后,我在上面再添加了4行,似乎必须有所区别,尽管DirectMap
在tail
昨天取消之前我从未听说过……也许DMI
是什么?
再多一点...
如果hugepages
尝试失败,并假设对任何映像文件进行硬盘备份,那么从tmpfs?
文件系统挂载到循环的风险是swapped
什么?我的文件系统是否是最坏的情况?我了解tmpfs
已挂载的文件系统缓存-可以将我已挂载的循环文件的内存不足吗?我是否可以采取缓解措施来避免这种情况?
最后-到底是什么shm,
?它是如何从不同或者包括两种hugepages
或tmpfs?
/proc/meminfo
那包含的前几行呢HugePage
(或者您的内核版本没有这些行)?这是什么架构(我想应该是x86_64)?