最后更新2021/08/13
AMS是动态内存共享的简称。继动态CPU共享(Shared Partition)之后,IBMs PowerVM技术又扩展出了动态内存共享功能,其功能与动态CPU共享和AIX的磁盘作为内存交换区的技术非常类似,可以让每个分区虚拟地拥有超过实际物理内存数量的物理内存。在此处大家不要混淆,要注意我们所在的层面。AMS是由小型机Hypervisor和VIO实现的,对分区(AIX操作系统)来说,由Hypervisor提供的资源就是“物理”资源,尽管这些物理资源也可能是虚拟的。AMS技术对于支持内存在分区间动态分配的能力依然是很有价值的技术,特别是如果其中某个分区如果是Power-HA的热备机,平时没有任何应用程序运行,内存需求量非常少,而一旦发生接管,其内存要求又可能非常大,AMS可以更高效地利用这些平时闲置的物理内存。AMS最基本概念如下:
- 物理内存被按照内存pool进行管理,几个分区可以共用一个内存pool的物理内存;
- 分区既可以是shared也可以是dedicated模式(按照内存使用类型划分,类似CPU的shared和dedicated模式);
- 无论什么模式的分区,系统管理员都可以手工使用DLpar技术进行内存分配(迁移),从拥有空闲内存的分区将物理内存迁移到使用同一内存pool的其它分区;
- 如果是shared模式,Hypervisor自动优化物理内存的分配;
- 系统管理员可以控制内存pool中物理内存的多少,如果分区使用的物理内存总量超过内存pool中所拥有的物理内存量,AMS技术使用VIO的磁盘空间作为临时缓存,调整物理内存的分配,使得已经占用但并不活动的分区释放部分物理内存给活动频繁的分区;
AMS技术的实现有如下技术(最低)要求:
- 使用IBM Power 6 CPU或更新型CPU的小型机;
- Power VM企业版授权;
- 小型机硬件微码版本在340_075以后;
- HMC 7.3.4 SP2 (V7R3.4.0M2)
- VIO Server 2.1.0.1-FP21
- 裸机分区AIX要求V6.1TL3以上或者SuSE SLES 11版以后
AMS支持Dedicated和shared两种模式的分区,具体模式的选择则根据各分区对于内存占用的要求和性能而确定。Dedicated分区不能使用超过其分配量的物理内存资源,但其物理内存也不会被其它分区“抢走”;Shared分区则可以根据内存使用情况获得更多的物理内存,或者“贡献”物理内存。不同的模式对于分区性能有一定影响,这种情况与共享CPU的情况类似,两种技术比较见<表 3-5 共享CPU和共享内存技术比较表>。
相同特性 | 共享CPU技术 | 共享内存技术 |
---|---|---|
共享资源 | Processor Pool | Memory Pool |
超额分配 | 属于同一共享池的分区的Virtual processors总数可以超过physical processors总数(最多10倍[ Power7 CPU以后为20倍]) | 分配给于同一共享池的分区的物理内存总数可以超过共享池实际物理内存数 |
优化方案 | 一个分区不使用的CPU周期可以自动分配给另一个分区使用 | 一个分区的活动页面可以抢占另一个分区页面所占据的物理内存 |
优先级 | 分区根据VP、PU配置参数和优先级(是否Capped / weight大小) | 调整物理CPU周期 |
依存关系 | 可独立存在 | 必须共享CPU的分区 |
资源保证 | 确保entitlement 的物理CPU | 确保I/O驱动程序需要的物理内存,其它应用程序的内存不能保证必然在物理内存中,可能会发生内存交换 |
优先级 | Weight仅用来计算如何分配超出entitlment量的CPU周期需求 | 根据其他参数确定超出IO内存之外的物理内存分配情况,例如分区产生的page faults次数 |
共享池 | 不需要特别配置物理CPU共享池 | 必须人工配置物理内存共享池 |
设备支持 | 任何设备 | 分区只支持虚拟设备 |
表 3-5 共享CPU和共享内存技术比较
AMS技术又引出了一些术语,由于这些术语只在动态内存共享中使用,所以没有在术语一节单独介绍。
- I/O Entitl