设为首页 收藏本站
查看: 1104|回复: 0

[经验分享] IBM Power7 服务器 Hypervisor 内存使用情况研究

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-4 11:50:35 | 显示全部楼层 |阅读模式
  Hypervisor 的概念
  Hypervisor 是一种运行在基础物理服务器和操作系统之间的 中间软件 层 , 可允许多个操作系统和应用共享硬件。Hypervisor 不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。
  下图是 IBM Power7 服务器的硬件架构逻辑图。从图中可以看出,Hypervisor 位于服务器硬件之上,分区之下。IBM PowerVM 产品是基于 Hypervisor 层的。
  
图 1.IBM Power7 服务器硬件逻辑架构
   DSC0000.jpg
    IBM Power 服务器中保留内存的区域
  IBM Power 服务器中,Hypervisor 会保留一部分内存,这部分内存分为三部分,它们分别是:
  用于系统管理的区域、用于分区页面表(Partition page tables)和转换控制表 (Translation control entry)的保留区域 。这三个内存区域在逻辑分区的内存之外,不在逻辑分区的内存中分配。
  用于系统管理的内存保留区域
  在分区环境下,Hypervisor 被加载到物理内存中地址为 0 的第一个物理内存块上,这是专为 Hypervisor  区域保留的地址。Hypervisor 主要用于完成分区环境下的虚拟内存管理、调试寄存器和内存访问、以及提供对分区虚拟终端的支持。尽管  Hypervisor 不会占用这一整块内存空间,但是第一块物理内存块一定要保留,不能为任何分区所占用。
  用于转换控制表(Translation control entry)的内存保留区域
  在分区环境中,操作系统使用 Hypervisor 服务来控制转换控制表。操作系统负责将所要用的 I/O  总线地址转换成分区中逻辑设备的映射,Hypervisor 负责将其进一步转换成在转换控制表表中物理设备的映射。Hypervisor  需要为转换控制表保留一专用的内存区域,使得分区在进行直接内存存取 (Direct Memory Access) 操作时能将逻辑 I/O  地址直接转换成所对应的 PCI 卡。
  用于分区页面表的内存保留区域
  AIX 的虚拟内存管理使用高级系统管理服务(Hypervisor services)来管理分区页面表分区页面表。AIX  中的虚拟内存管理进行虚拟地址到分区逻辑内存地址的映射,Hypervisor 服务在分区页面表(partition page tables)  中进行到服务器物理内存地址的映射。
  分区页面表不占用逻辑分区中逻辑内存空间,它是分区逻辑内存之外的一段物理内存空间,是每一个逻辑分区进行操作所必需的额外内存。
  在 HMC 中,我们可以通过查看分区内存属性查看 Hypervisor 占用的内存。
  
图 2.HMC 上查看保留内存
   DSC0001.jpg
  回页首
  创建分区之前
  以 Power770 为例,48C/386G 内存。将服务器加电以后,先不创建任何分区,如下图:
  
   DSC0002.jpg
    此时,我们查看 Hypervisor 保留内存的大小:
  
   DSC0003.jpg
    其中,2.75G 是 Hypervisor 预留内存的大小,“已分配给分区”表示目前没有内存被分区使用。
  不激活分区的情况下
  在 P770 上创建期望内存为 1G,最大内存为 2G 的分区,为了找到详细的对应关系以及转折点,分区一个一个创建。
  首先使用 ssh 工具,登陆到 HMC 上。
  
   DSC0004.jpg
    然后,输入 vtmenu, 找出这台 P770 对应的编号,为了避免泄露 IBM 公司机密,序列号部分被擦除:
  
   DSC0005.jpg
    从上图可以看出,我们使用的服务器对应的编号是 40.
  在上图的位置输入 40,提示符依旧,并未切换到类似如下界面,说明此台服务器还未创建分区:
  
   DSC0006.jpg
    我们使用如下命令创建分区,分区的名字定为 test1,期望内存为 1G,最大内存为 2G,期望 CPU 和最大 CPU 数量均为 1:
   mksyscfg -r lpar -m SVRP7770-02 -i "name=test1,profile_name=Normal, lpar_env=aixlinux,min_mem=1024,desired_mem=1024,max_mem=2048,proc_mode=ded,min_procs=1, desired_procs=1,max_procs=1,sharing_mode=share_idle_procs,auto_start=1,boot_mode=norm"
  分区创建成功以后,先不激活分区,查看 Hypervisor 占用的内存没有变,依然为 2.75G
  
   DSC0007.jpg
    下面,采取同样的办法,再次创建一个分区,并且不激活,
   mksyscfg -r lpar -m SVRP7770-02 -i "name=test2,profile_name=Normal, lpar_env=aixlinux,min_mem=1024,desired_mem=1024,max_mem=2048,proc_mode=ded,min_procs=1, desired_procs=1,max_procs=1,sharing_mode=share_idle_procs,auto_start=1,boot_mode=norm”
  然后查看 Hypervisor 占用的内存,依然是 2.75G
  
   DSC0008.jpg
    此时,我们通过 HMC 命令可以看到 P770 上已经有两个分区:
  
   DSC0009.jpg
    创建第三个分区,test3:
  mksyscfg -r lpar -m SVRP7770-02 -i "name=test2,profile_name=Normal,  lpar_env=aixlinux,min_mem=1024,desired_mem=1024,max_mem=2048,proc_mode=ded,min_procs=1,  desired_procs=1,max_procs=1,sharing_mode=share_idle_procs,auto_start=1,boot_mode=norm”
  
   DSC00010.jpg
    第三个分区创建完毕以后,查看 Hypervisor 占用的内存 , 发现这个数值已经从 2.75G 增长到 3.0G,增长了 0.25G:
  
   DSC00011.jpg
    按照上面的方法,我们继续一个个分区依次创建,并且不进行激活,在创建到第 40 个分区的时候:
  
   DSC00012.jpg
    查看 Hypervisor 所占用的内存依然是 3.0G:
  
   DSC00013.jpg
    创建第 35 个分区:
   mksyscfg -r lpar -m SVRP7770-02-SN1007C1P -i "name=test35,profile_name=Normal, lpar_env=aixlinux,min_mem=1024,desired_mem=1024,max_mem=1024,proc_mode=ded,min_procs=1, desired_procs=1,max_procs=1,sharing_mode=share_idle_procs,auto_start=1,boot_mode=norm"
  
   DSC00014.jpg
    第 35 个分区创建成功以后,查看 Hypervisor 所占用的内存,已经增加到 3.25G:
  
   DSC00015.jpg
    也就是说从 3G 到 3.25G 的 Hypervisor 所增加的内存占用 256M,是由于创建从 test3-test34 这  32 个分区所引起的,所以,在不激活的前提下,每新创建一个期望内存 1G,最大内存 2G 的分区,会增加 Hypervisor 内存占用  8MB 的增长。
  创建一个分区所带来的 Hypervisor 内存开销:256MB/32=8MB
  分区期望内存与内存开销的倍数关系:1024MB/8MB=128
  分区最大内存与内存开销的倍数关系:2048MB/8MB=256
  为了确认这个倍数关系,我们再创建 28 个分区(test36-test63),并且不激活,确保 Hypervisor 占用的内存依然是 3.25G:
  
   DSC00016.jpg
    创建第 64 个分区:
   mksyscfg -r lpar -m SVRP7770-02-SN1007C1P -i "name=test64,profile_name=Normal, lpar_env=aixlinux,min_mem=1024,desired_mem=1024,max_mem=2048,proc_mode=ded,min_procs=1, desired_procs=1,max_procs=1,sharing_mode=share_idle_procs,auto_start=1,boot_mode=norm"
  不激活分区,查看 Hypervisor 占用的内存,已经增加到 3.5G:
  
   DSC00017.jpg
    也就是说从 3.25G 到 3.5G 的 Hypervisor 所增加的内存占用 256M,是由于创建从  test35-test63 这 29 个分区所引起的 , 所以,在不激活的前提下,每新创建一个期望内存 1G,最大内存 2G 的分区,会增加  Hypervisor 内存占用 8.8MB 的增长。这与之前的实验验证出来的结果基本符合。
  我们将 test64 删除,使 Hypervisor 所占用内存为 3.25G,然后继续下面的实验:
  为了验证数据的准确性,继续创建期望内存 2G,最大内存 4G 的分区。
   mksyscfg -r lpar -m SVRP7770-02-SN1007C1P -i "name=test64,profile_name=Normal, lpar_env=aixlinux,min_mem=1024,desired_mem=2048,max_mem=4096,proc_mode=ded,min_procs=1, desired_procs=1,max_procs=1,sharing_mode=share_idle_procs,auto_start=1,boot_mode=norm"
  第 64 个分区创建成功以后,Hypervisor 所占用内存增加到 3.5G
  
   DSC00018.jpg
    按照上面的方法,依次建立分区,找出使 Hypervisor 所占用内存增加到 3.75G 的转折点。
  当创建完第 67 个分区的时候 Hypervisor 所占用内存依然是 3.5G:
  
   DSC00019.jpg
    创建第 68 个分区以后,Hypervisor 所占用内存增加到 3.75G
  
   DSC00020.jpg
    也就是说从 3.5G 到 3.75G 的 Hypervisor 所增加的内存占用 256M,是由于创建从  test64-test67 这 4 个分区所引起的,所以,在不激活的前提下,每新创建一个期望内存 2G,最大内存 4G 的分区,会增加  Hypervisor 内存占用 64MB 的增长。
  创建一个分区所带来的 Hypervisor 内存开销:256MB/4=64MB
  分区期望内存与内存开销的倍数关系:2048MB/64MB=32
  分区最大内存与内存开销的倍数关系:4096MB/64MB=64
回页首
  总结
  

  • 在本试验中,Hypervisor reserved memory 增加的内存是以 256MB 的倍数增加的,如 256MB,512MB,1024MB 等,这是 Hypervisor Logical Memory Block 的大小设置;
  • 在分区不激活的情况下,分区设置的最大内存越大,带来的 Hypervisor 内存开销越大;
  • 在激活分区时,分区最大内存的数值越大,激活分区所带来的 Hypervisor 内存开销的增加越大;
  • 分区最大内存数量与创建分区以及激活分区所带来的 Hypervisor 内存开销,有正比关系,但无必然的线性关系;
  • 对于期望内存较大的分区,将最大内存设置的过大(如为期望内存的两倍),将会使 Hypervisor 占用过多的内存;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-122538-1-1.html 上篇帖子: IBM 2145磁盘阵列 在Ubuntu Server中的配置 下篇帖子: 减少Linux 电耗 转自IBM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表