关于【Centos8内存机制】的疑问解答-全球主机交流-

  • Post author:
  • Post category:hostloc
  • Post comments:0评论
  • Post last modified:六月 2, 2020

关于这个问题 《Centos8内存机制》,需要了解Linux的内存分页机制。
问题直通车:https://www.hostloc.com/forum.php?mod=viewthread&tid=697531

背景知识:Centos8之前版本中,内存分页为4级,而由 Centos8 开始,为了更好地适应“堆硬件”环境,内存分页改为5级,有更大的寻址空间。


在Linux中的每个进程都对应一个页表,
以Centos7的4级分页为例:4G的内存,4K每页
如果是一级页表映射,那需要 2^20 =1M 个页表项 (无论系统用不用都映射,此时系统不知道哪个地址是否会被访问)
1M * 4 == 4M  每个进程初始化的时候就需要4M的页表负责
而如果是2级页表映射,就只需要一个页目录 + 1个页表项(此时,进程只使用1级页表的4M内存的情况就足够了,2级开始只需要目录+实际地址)
1个页目录占4K,一个页表项占4个字节,但另起了一页,每个进程总体则占8K。以此类推。
所以,Centos8之后的5级分页机制会导致系统在内存上预先占用更多内存空间

  • 页全局目录(Page Global Directory):包含若干页上级目录的地址;
  • 页上级目录(Page Upper Directory):依次包含若干页中间目录的地址;
  • 页中间目录(Page Middle Directory):包含若干页表的地址;
  • 页表(Page Table):每一个页表项指向一个页框

hardwar22小时前-2楼
非纯表

楼主 Syc21小时前-3楼

hardwar 发表于 2020-6-2 03:10非纯表

第一个反应竟然是数据结构,才反应过来,不是单纯的表情

嗷嗷21小时前-4楼
喔喔,原来是这样子嗯,我现在完全搞懂了。

citywar19小时前-5楼
反正看不懂 就说新版本占的内存大就OK了 MYSQL 不就是那样

发表评论