共享内存 配置文件_根据客户的经验配置主动内存共享
我很幸运地参加了IBM的上用于主动内存共享(AMS)的早期发货计划(ESP)。 本文介绍了如何在非生产AIX实验室环境中配置 。 我还将介绍AMS的性能注意事项。 我的希望是,随着人们开始采用AMS,本文将有助于他们开始使用这一新的™虚拟化技术。
我工作的组织被提名并接受了AMS的ESP。 几个月以来,我们能够测试AMS,然后其他人(IBM之外)才有机会尝试使用AMS。 既然AMS已可用于AIX和客户,我认为值得与AIX社区分享我的经验。
参与Beta版计划是一次很棒的经历。 我们可以访问Beta代码和测试文档。 我们还能够针对测试期间发现的任何错误打开PMR。 专为ESP客户创建了一个论坛,以便我们可以发布问题并直接从实际的AMS开发人员那里获得答案。
我们应该在非生产系统上测试AMS,并定期进行报告,向开发人员提供有关性能,功能和可用性的反馈。
总览
AMS是对平台上可用的IBM 虚拟化技术的增强。 这是一些人迫切等待了一段时间的功能。 对于完全虚拟化的AIX and POWER环境,这是难题的最后一部分。
AMS智能地将内存从一个逻辑分区(LPAR)流到另一个逻辑分区,以提高内存的利用率和灵活性。 该概念与共享处理器池和微分区的概念非常相似。 它允许您在系统上超额预订内存,并让系统(POWER ™)在需要的地方分配内存。 不再需要DLPAR操作!
当然,您需要了解AMS的工作方式以及它如何与虚拟内存和AIX上的页面调度进行交互。 幸运的是,现有的性能工具已得到增强,可以帮助监视和管理AMS系统。
那么为什么我们需要AMS? 好吧,考虑一个具有p6 570的环境,该环境具有256GB的内存和32个AIX LPAR,其中每个LPAR都分配有8GB的内存。 所有内存都已分配,无法与其他LPAR共享。 但是,我们有未分配的处理单元,可用于构建更多的LPAR,但由于所有内存已被消耗,因此无法处理。 通常的做法是激活更多内存(使用CUoD)或购买并安装更多物理内存。
但是,将LPAR上的任何“未使用”或“空闲”内存与其他LPAR共享并在真正需要时将其退还不是很好吗? 但是,如何确定LPAR是否真的需要所有内存呢? 由于内存的AIX优化,这通常是一项艰巨的任务。 您执行了一些工作负载分析,发现并非所有LPAR都同时使用。 这是一个非生产系统,运行大量用于SAP / 的开发和测试环境(例如)。 您现在知道,尽管LPAR可能已经消耗了所有内存,但它们并没有真正一直在使用它。
我们可以重新分配“空闲”内存并将其部署到其他真正需要它的地方吗? 是的:使用AMS,您可以。
主动内存共享(AMS)
在本节中,我将简要概述AMS的功能。 但是,我建议您查看有关AMS的IBM官方文档以获取详细信息。
传统上,每个LPAR都拥有其内存。 任何未使用的内存都可能被浪费。 如果内存被过度使用(过量使用),那么AIX将分页到调页空间(磁盘)。 为了处理这些情况,AIX管理员可以删除一些内存(如果他可以确定内存的实际使用情况),然后使用DLPAR将其重新分配给另一个LPAR,或者如果有空闲(未分配)的内存,则将其添加到LPAR,再次使用DLPAR 。 请参考图1。
图1.具有专用物理内存的LPAR
借助AMS,系统管理程序可以自动控制内存分配。 系统的物理内存位于“共享内存池”中。 LPAR被分配了“逻辑”共享内存。 但是,他们认为内存是真实的,因此更改对系统是透明的。 可以根据需要将该内存分配给LPAR。 未使用的内存可用于构建更多的LPAR或分配给需要它的用户。 LPAR和协同工作以确定何时以及在何处共享内存。 参见图2。
图2.具有共享“逻辑”内存的LPAR
为了使AMS正常运行,需要一种称为分页虚拟I / O服务器(VIOS)的新设备。 此分页VIOS设备为共享内存池提供分页服务,并为共享内存LPAR管理系统管理程序分页空间。 由于内存是在多个LPAR之间动态管理的,因此必须使用分页设备来备份无法使用共享内存池中的物理内存备份的多余内存。 这使我们可以进行内存订阅。
有三种方法可以使用AMS配置内存订阅。
第一个称为Non over- 。 在这种情况下,共享池中的实际内存量足以覆盖已配置的逻辑内存量(例如,四个LPAR每个需要8GB,因此该池配置了32GB内存。这非常适合共享内存)池。)。
第二种方法是逻辑过量使用 。 在给定时间“正在使用”的逻辑内存等于池中的物理内存。 因此,逻辑配置的总内存可以大于池中的物理内存。 但是, 工作集永远不会超出池中的物理内存。 稍后更多关于工作集的信息。 在这种配置中,LPAR上活跃使用的内存(工作集)将驻留在物理内存中,其余LPAR的逻辑内存位于分页VIOS上的分页设备上。 只是要使用此方法来重申“使用中”和“已配置”之间的区别:“已配置”逻辑内存可以更大,但“使用中”内存在任何时间点都不会超过内存池大小。
最终配置为 over- 。 在这种情况下,所有LPAR的工作集内存需求可能会超出池中的物理内存。 因此,池中的物理内存和分页VIOS上的分页设备都必须支持逻辑内存。 在“过量使用”的情况下,系统管理程序使用VIOS上的分页设备来备份多余的逻辑内存。
那么您应该使用哪种方法? 如何确定哪些LPAR很适合AMS? 这取决于您的工作负载要求。 本质上,任何没有使物理内存消耗最大化的工作负载都是AMS的最佳选择。
我更喜欢遵循逻辑过量使用方法。 此方法最适合在不同时间达到峰值,平均内存驻留时间( 工作集 )要求较低且没有持续工作负载的工作负载。 通常,非生产开发和测试环境符合此描述。 同样,用于冗余并且仅在故障转移/接管情况下需要资源的故障转移或“备份” LPAR(例如,用于群集)也是AMS的良好目标。
为了确定哪种方法最好,您需要对系统的工作集要求有所了解。 工作集是系统上工作负载实际使用或需要的内存。 在将专用LPAR迁移到AMS之前,可以使用svmon之类的AIX性能工具来确定专用内存LPAR上正在使用的内存。
对于使用大量AIX文件高速缓存,对I / O延迟较不敏感的工作负载(例如文件服务器,打印服务器或网络应用程序),并且大多数情况下它们是不活动的,则物理过量提交方法是可以的。 也许您的NIM服务器也是不错的选择,因为它可能很少用于仅安装AIX系统并执行维护?
根据我的测试,我建议继续将专用内存用于具有以下特征的生产系统:高服务质量要求,持续的内存消耗,可预期的性能以及持续的高CPU使用率和高内存带宽要求。 所以不,我不会在我的生产环境中部署AMS。 其他环境可能不适合AMS,例如压力和体积测试系统。
我的工作量适合吗?
在实验室环境中,我必须确定工作负载是否适合我的共享内存池。 我有两个使用专用内存的现有LPAR。 在将它们转换为共享内存LPARS之前,我做了一些数字。 每个LPAR都有4GB的专用内存。 LPAR1大部分时间都是相对空闲的,并且根据其工作集,它不需要所有4GB的内存。 LPAR2(也具有4GB的内存)比较忙,有时需要更多的内存,有时它会分页到分页空间。 它可能会受益于更多的内存。
因此,在我的AMS环境中,我决定为每个LPAR添加一些额外的逻辑内存,以满足需求的高峰。 LPAR1将接收6GB的共享内存,而LPAR2将被分配8GB。 共享内存池将配置有12GB的物理内存,并且总共有14GB的逻辑内存分配给LPAR。 总逻辑内存大于共享内存池。 但是考虑到每个LPAR的工作量,在大多数情况下应该没问题。
在大多数情况下,两个LPAR都会很高兴地一起放入内存池中。 如果两个LPAR的工作集都小于或等于池大小,则不会出现过量使用。 如果工作集变得略大于池大小,那么当系统管理程序重新平衡LPAR的内存使用量时,将发生一些分页。 如果LPAR的工作集变得比池的大小大得多,那么将有很多分页,并且性能可能会受到很大影响。 因此,在转移到AMS之前,必须充分了解您的工作量。
AMS与AIX虚拟内存管理器和一起管理内存分配。 如果所有LPAR的工作量略大于池,则系统管理程序将要求AIX帮助确定可以在何处释放页面。 AIX可以根据需要将页面借给。 分配内存时,虚拟机管理程序会偏爱对内存有更高需求的LPAR。
如果池在物理上被过量使用,则虚拟机监控程序将主动从LPAR窃取页面。 如果这极大地影响性能,那么可能是时候向池中添加更多的物理内存了。
准备和计划
如果计划在您的环境中使用AMS,则必须确保系统具有以下必需的硬件,AIX版本,VIOS版本,固件级别和虚拟化配置:
我的非生产实验室环境包括一个具有16GB内存的JS22™刀片服务器和四个处理器。 在刀片上配置的是VIOS(IVM)和两个AIX 6.1 LPAR。 作为ESP的一部分,我得到了安装的Beta代码,它将在我的JS22,VIOS和AIX LPAR上启用AMS。 我将实验室更新为提供的beta级别:
两个LPAR都是现有系统(使用专用内存),具有现有工作负载。 第一个LPAR 正在运行一个SAP / 实例。 另一个LPAR 正在运行三个应用程序:SAP / ,Wily和 Grid ,其中每个应用程序都位于工作负载分区(WPAR)中。
两个LPAR的工作集大约为9.3GB,非常适合该池。 我运行svmon –G并观察了使用中的内存值来确定工作集。 参见图3。
图3. svmon输出显示在LPAR上正在使用的专用内存
在极少数情况下,LPAR工作集会增长并且略大于池的大小。 这将是对AMS及其性能的很好测试。 我的目标是将这些现有LPAR从专用内存迁移到共享内存并监视其性能。
配置活动内存共享
要在实验室中配置AMS,我执行了以下步骤:
监控AMS
增强了诸如topas和之类的现有工具,以报告正在使用的物理内存,虚拟机监控程序分页速率,虚拟机监控程序分页速率延迟以及AIX借给虚拟机监控程序的内存量。 这些工具可用于监视AMS的性能和活动。 参见图17。
图17.共享内存LPAR上的topas cec输出
pmem是在给定时间从共享内存池分配给共享内存分区的物理内存(以GB为单位)。 请参阅IBM文档以获取更多信息。
svmon工具也支持AMS,可以显示LPAR上借出的内存量。 参见图18。
图18.共享内存LPAR上的svmon输出
行动中的AMS
在以下示例中,您可以观察到LPAR由于工作量增加而需要额外的内存。 内存会自动从一个LPAR重新分配到另一个LPAR。 内存按需借给繁忙的LPAR。 无需管理员交互,该活动对系统是透明的。
来自的内存已借给。 正在使用4GB(pmem),并已借出2GB内存(贷款)。 参见图19。
图19.来自的内存已借给
图20. 处于空闲状态
工作负载从开始。 它借给的内存又被借用了。 随着时间的推移,借出的金额减少(贷款),LPAR上使用的内存(pmem)增加。 请参考图21。
图21.工作负载从开始
现在,两个LPAR的工作集都大于共享内存池的大小。 系统管理程序分页发生在上(hpi和hpit),因为内存被返还给。 (pmem)上使用的内存已从8GB减少到刚刚超过6GB。
图22. 上正在使用的内存
一旦有足够的内存来完成其工作,系统管理程序分页将在(hpi和hpit)上停止。 请参考图23。
图23. 分页在上停止
一旦完成其工作量,便在上开始工作。 内存再次从借给了。 随着时间的流逝,(pmem)上使用的内存减少,借出(贷款)的数量增加。 参见图24。
图24. (pmem)上使用的内存减少
可以使用vmo在LPAR上更改AMS贷款政策。 默认情况下,仅借用文件缓存页面。 您可以更改此策略,具体取决于您希望借出内存页的积极程度。 请参阅图25。
图25.共享内存LPAR上的vmo设置
AMS在这里! 怎么办?
虚拟化难题的最后一部分已经到来:主动内存共享。 我们可以让我们的AIX POWER系统根据工作量和需求自动调整内存分配。 不再需要DLPAR操作! 顺便说一下,AMS支持带有内存的DLPAR,因此您仍然可以动态地从LPAR添加和删除内存,只是现在它是逻辑内存,而不是物理内存。
还有很多东西要学习,因为在虚拟化内存环境中将进行性能调整和监视差异。 由于AMS和逻辑内存有新的考虑因素,因此需要回顾监视AIX内存的传统方法。 与共享处理一样,这一次需要从内存的角度调整对监视和管理虚拟化资源的看法。
我还需要在环境中测试一些其他区域,例如使用双VIOS配置AMS,在支持AMS的系统上执行实时分区移动性以及将AMS与(HACMP)集群一起使用。 我希望有时间尽快完成这项工作,并向AIX社区报告任何运气。 如果已经有人这样做,请告诉我!
结论
我希望对AMS的简短介绍能使您思考如何部署和迁移到这项新技术。 AMS有潜力在您对和技术的投资中提高投资回报率和总投资成本。 具有在系统之间共享内存的能力将有助于降低成本,并提供一种更有效的内存部署方法。
如果要在环境中使用AMS,请开始考虑如何迁移到共享内存分区。 从基础开始,例如:
现在也可以考虑考虑有关AMS以及最新的和AIX技术的培训。
翻译自: