mophis
作者mophis·2011-12-15 13:21
软件开发工程师·杭州

规划 Active Memory Expansion

字数 4967阅读 4305评论 0赞 1

简介

如今,内存容量已经成为妨碍工作负载借助处理器的力量进行线性扩展的主要瓶颈之一。处理器的处理能力每年都在增加,为了支持高速的处理器,系统也应提供充足的内存。内存约束是处理能力利用率低下的主要原因之一。

Active Memory Expansion (AME) 这种特性可帮助提高系统的有效内存大小,而且不必增加物理内存大小。这是通过将更多数据压缩到更小的内存空间中实现的,从而留出空间存储更多数据。

因为 AME 的使用带来的内存容量的有效增加使得吞吐量有所增加,同时还导致了 LPAR 的利用率的增加。内存节约可用于为系统添加更多 LPAR,或者额外的工作负载,以便完成更多工作。

AME 概述

操作系统管理 AME,虚拟化控制点可以按单个 LPAR 为基础配置 AME。用户可以进入 VET 激活模式来解锁系统的 AME 功能。在为系统解锁了 AME 之后,管理员即可随意创建启用了内存扩展的 LPAR。如果 AME 无法解决问题,则可随时禁用 AME。

在为 LPAR 启用 AME 时,操作系统将开始根据工作负载的内存访问模式压缩和解压缩内存中的数据。这将创建两个内存池:压缩的和未压缩的。

操作系统控制池的大小,并负责根据工作负载在压缩和未压缩池之间移动页面。

在某个应用程序需要访问压缩的数据时,操作系统会自动解压缩数据,并将其从压缩池移动到未压缩池,使之可供应用程序访问。在未压缩池已满时,操作系统会压缩数据,并将其从未压缩池移到压缩池中。根据工作负载和内存扩展的级别,可能会存在一些额外的 CPU 占用。

目标内存扩展因数是可由用户配置的。用户可以为一个工作负载指定目标内存扩展因数。这个因数是 LPAR 的实际逻辑内存大小的倍数。此因数支持的值范围为 1.0(即 100%)至 10.0(即 1000%)。

这个内存扩展因数为操作系统提供了有关用户尝试实现的有效内存容量的输入,即 OS 应尝试纳入内存的数据量。

20GB 的未压缩池可容纳最多 20GB 的数据。可存储在压缩池中的数据量随数据压缩能力的不同而不同。如果数据的压缩比率能达到 2 比 1,那么可存储在 20GB 压缩内存池中的数据量将为 40GB。如果数据仅能达到 1.8 比 1 的压缩比,则可存储在 20GB 压缩池中的数据量将是 36GB。

内存扩展因数 = 扩展内存大小 / 实际内存大小 = 60 / 40 = 1.5X

规划 AME

AME 的优势因为工作负载的不同而有所不同。因此,必须监视工作负载一定的时间,以确定内存扩展因数。Active Memory Expansion Planning and Advisory 工具 amepat 可帮助规划 Active Memory Expansion 环境中的工作负载部署,同时提供有关某个工作负载能够实现的内存扩展级别的指导。

数据压缩能力、内存使用情况和访问模式等因素决定了一些不常见的 AME 优势。amepat 工具能够考虑这些因素,并生成一份报告来提供扩展因数的预计。因此,建议在启用 AME 之前运行 amepat 来获得相关指导。

amepat 命令

amepat 工具报告 AME 信息和统计数据,帮助监视为一个工作负载启用 AME 的效果。amepat 工具可帮助规划初始 AME 配置,并监视和调优活动 AME 配置。在 AME 启用或禁用时均可调用 amepat 工具。

应该在工作负载的峰值利用率期间运行 amepat 工具,确保工具捕捉到工作负载峰值时段的利用率和内存使用情况。在调用该工具之后,它会定期收集指标,确定压缩能力。此工具将包括各种扩展因数的预计,以及命令执行结束时的 CPU 开销。这将帮助客户根据其当前压缩比和 CPU 开销确定最优的扩展因数。

AIX 6.1 TL4 SP2 中提供了此命令,此命令也可在 POWER4 以上的系统中运行,以便预测将在具有 AME 功能的 POWER7 系统中使用的工作负载。amepat 工具可通过命令行或者 smit 调用。

考虑一个示例,其中 amepat 在工作负载的利用率处于峰值期间运行了 3 个小时,以规划 AME。

#amepat 180

amepat 工具监视系统,并在 3 个小时之后生成一份报告。所生成的报告中包括两个部分:系统统计数据和 AME 统计数据。

系统配置和资源统计数据


图 1. amepat 报告 - 命令信息、系统配置和系统资源统计数据
系统配置和资源统计数据报告的屏幕快照结果

Command Information 部分提供了传递给 amepat 工具的参数、调用时间、总监视时间和收集到的样本数量的具体信息。具体来说,如果 amepat 的调用形式为 amepat 2 3,则总监视时间将为 6 分钟,以 2 分钟为间隔收集了 3 个样本。如果未提到样本数量,则 amepat 将自动计算间隔和样本数量。实际监视时间可能高于根据工作负载指定的持续时间。

System Configuration 部分提供了有关系统配置的具体信息,主要提供了相关分区名称、处理器类型、处理器实现模式、逻辑 CPU 数量、处理器授权容量(分区的容量授权,使用物理处理器数量为单位表示)、处理器最大容量、SMT 线程(可以是 124)、共享处理器模式(可能的值包括 Disabled、Enabled-Capped、Enabled-Uncapped)、活动内存共享(表明活动内存共享是启用的还是禁用的)、活动内存扩展(表明活动内存扩展是启用的还是禁用的)等方面的具体信息。

在启用 AME 时,还会显示以下两个字段:

  • LPAR 的目标扩展内存大小,以 MB 为单位
  • 为 LPAR 配置的目标内存扩展因数

系统资源统计数据从 CPU/内存的角度提供了有关系统资源利用率的具体信息。在指定持续时间/间隔值时将显示最小和最大值。

这些数据提供了以下具体信息:

  • 一个分区的 CPU 利用率,以物理处理器的数量为单位
  • CPU 利用率占最大容量的百分比
  • 活动虚拟内存大小,以 MB 为单位
  • 虚拟内存大小占实际内存大小的百分比
  • LPAR 的实际物理(或逻辑)内存数量,以 MB 为单位
  • 内存大小占实际内存大小/扩展内存大小的百分比
  • 固定内存大小,以 MB 为单位
  • 固定内存大小占实际内存大小的百分比
  • 非计算文件缓存大小,以 MB 为单位
  • 文件缓存大小占实际内存大小的百分比
  • 可用于应用程序执行的内存大小,以 MB 为单位
  • 可用内存大小占实际内存大小/扩展内存大小的百分比
  • AME 统计数据和建模的统计数据
  • AME 建模的统计数据提供了有关 AME 的建模统计数据。这显示了有关用于生成建模统计数据的扩展内存大小的具体信息。
  • 内存中工作负载数据的平均压缩比
  • 建模的目标内存扩展因数
  • 建模的实际内存大小(实际物理或逻辑内存)
  • 分区通过为所报告的扩展因数启用 AME 能够获得的内存数量
  • 所获得的建模内存占目标扩展内存大小的百分比
  • 以物理处理器为单位的处理容量,可用于内存压缩活动。
  • 利用率相对于最大容量的百分比

在本例中,第五行表示通过在具有 2.75GB 物理内存和 1.54 的内存扩展因数的 LPAR 中运行工作负载可节约 1.25GB 的内存。此活动预计的 CPU 利用率为 0.07。


图 2. amepat 报告 - AME 建模统计数据和建议
AME 建模统计数据和建议报告的屏幕快照结果

在启用 AME 时,amepat 将显示 AME 统计数据。这提供了以下具体信息:

  • AME 活动的 CPU 利用率,以物理处理器为单位
  • 利用率相对于最大容量的百分比
  • 压缩的虚拟内存总数,以 MB 为单位
  • 相对于目标扩展内存大小的百分比
  • 压缩比
  • 如果 LPAR 的内存不足,则提供 LPAR 缺少的扩展内存大小,以 MB 为单位。
  • 如果 LPAR 的内存不足,则提供相对于目标扩展内存大小的百分比。

图 3. amepat 报告 - AME 统计数据部分
AME 统计数据部分报告的屏幕快照结果

建议提供了有关可为当前运行的工作负载提供最优收益的 AME 配置细节。amepat 将从建议的建模表中选择一个配置。所列出的任何配置都是有效的,可用作初始尝试配置。

自定义 amepat 报告

amepat 将分析实时收集或者从用户指定的记录文件中收集的系统配置和性能统计数据,从而生成工作负载利用率和规划报告。

amepat 中包括自定义 AME 建模统计数据的选项。

如果 amepat 在未使用任何选项的情况下运行,则生成包含系统配置快照和 AME 性能指标(若启用了 AME)的报告。

要为建模内存扩展因数在 1.2 至 1.8 之间、增量因数为 0.1 的工作负载规划生成 AME 报告,可以使用 -e 选项。这将接受以下格式的输入:

startexpfactor [ :stopexpfactor [ :incexpfactor ] ] amepat -e 1.2:1.8:0.1 2


图 4. 使用 amepat 及建模内存扩展因数
具有建模内存扩展因数的 AME 建模统计数据自定义报告屏幕快照

要为建模 AME CPU 使用率上限为 30%、所获得的初始建模内存为 800 MB 的工作负载规划生成 AME 报告,可以使用 -c 和 -m 选项。

amepat -c 30 –m 800 2 3


图 5. 使用带有 -c 和 -m 标记的 amepat
具有建模 CPU 使用率及初始建模内存获得的 AME 建模统计数据自定义报告

要通过建模最小未压缩池大小 700 MB 及建模表中仅有的 3 个条目为工作负载规划生成 AME 报告,可以使用 -u 和 -n 选项。

amepat –u 2000 –n 3 1


图 6. 使用带有 -u 和 -n 标记的 amepat
具有建模最小解压缩池大小和自定义表条目的 AME 建模统计数据自定义报告

要生成建模的目标扩展内存大小为 5000 MB 的 AME 报告,可使用 -t 选项。

amepat –t 5000 10


图 7. 使用 amepat 及建模的目标扩展内存大小
具有建模的目标扩展内存大小的 AME 建模统计数据自定义报告

要生成根据工作负载的当前内存使用情况预计的 AME 报告(不包括可用内存大小),可使用 -a 选项。

要通过禁用采用日志文件的 AME 建模来生成 AME 报告,可以使用 -N 和 -v 选项。

amepat –v –N


图 8. 使用带有 -v 和 -N 标记的 amepat
通过禁用采用日志文件的活动内存扩展建模生成的活动内存扩展报告

具体日志中还包含有关收集的全部样本的具体信息。在 amepat 运行了较长时间、工作负载频繁发生变化的情况下,这可能有助于找到特定时间的统计数据。此外它还会记录分页空间的进出情况、文件页面的进出情况、候选内存和内存引用。


图 9. amepat 日志文件
amepat 具体日志的输出

amepat 工具 - 记录模式

在记录模式中,amepat 会将系统配置和各种性能统计数据记录到用户指定的记录文件中。所记录的数据随后可以使用 -P 选项进行后期处理。

只要工作负载的利用率水平得到提高,即可使用 -R 选项来记录内存和 CPU 占用率。所记录的文件可按照需求使用各种命令选项进一步处理,并可根据报告设置扩展因数。

要生成 60 分钟的记录文件,可以使用 -R 选项。

amepat -R myrecord_amepat 60

要使用记录文件生成建模目标扩展内存大小为 5000MB 的报告,可使用此代码:

amepat –t 5000 -P myrecord_amepat

要为使用建模内存扩展因数 2 至 4,增量 0.5 规划的工作负载生成报告,可使用此代码:

amepat -e 2.0:4.0:0.5 -P myrecord_amepat


如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广