动态内存扩展 (AME)
动态内存扩展 (AME) 是用于扩展系统的有效内存容量的新技术。 AME 使用内存压缩技术以透明方式压缩内存中数据,允许将更多数据放到内存中,并因此扩展已配置系统的内存容量。
概述
Active Memory Expansion (AME) 依靠对内存中数据的压缩来增加可放入内存中的数据量,从而扩展基于 IBM® Power Systems 处理器的服务器的有效内存容量。 内存中数据压缩由操作系统管理,并且此压缩对应用程序和用户是透明的。 可在每个逻辑分区 (LPAR) 上配置 AME。 因此,可选择性地对系统上的一个或多个 LPAR 启用 AME。
对 LPAR 启用动态内存扩展后,操作系统会压缩 LPAR 的内存的部分,并保留内存的余下部分未压缩。 这会导致内存有效划分为两个池。 它们是:
- 压缩池
- 未压缩池
操作系统根据工作负载和 LPAR 的配置动态改变压缩的内存量。
操作系统根据应用程序的内存访问模式在压缩内存池和未压缩内存池之间移动数据。 当应用程序需要访问压缩数据时,操作系统会自动解压这些数据并将其从压缩池移至未压缩池,使其对应用程序可用。 未压缩池变满时,操作系统会压缩数据并将其从未压缩池移至压缩池。
此压缩和解压活动对应用程序是透明的。 因为 AME 依靠内存压缩,所以使用 AME 时会消耗额外 CPU 利用率。 AME 所需额外 CPU 利用率的量取决于工作负载和正在使用的内存扩展的级别。

ame_mpsize_support参数的 "vmo命令来启用 64 KB 页面大小。内存扩展因子和扩展内存大小
LPAR_expanded_mem_size = LPAR_true_mem_size * LPAR_mem_exp_factor 40 GB = 20 GB * 2.0 操作系统压缩足够内存中数据以将 40 GB 数据装入到 20 GB 内存中。 可使用硬件管理控制台 (HMC) 通过动态 LPAR 操作在运行时动态更改内存扩展因子和扩展内存大小。 扩展内存大小总是向下舍入至最接近的逻辑内存块 (LMB) 倍数。
内存缺口
为 LPAR 配置内存扩展因子时,根据工作负载的可压缩性,选择的内存扩展因子可能会过大而不能实现。 LPAR 的内存扩展因子过大时,会形成内存扩展因子缺口,指示 LPAR 不能实现其内存扩展因子目标。 例如,如果配置 LPAR 时指定内存大小为 20 GB,内存扩展因子为 1.5,那么这会使总目标扩展内存大小为 30 GB。 但是,LPAR 中运行的工作负载无法充分压缩,并且工作负载的数据仅按 1.4:1 的比率进行压缩。 在此情况下,工作负载无法实现目标内存扩展因子 1.5。 操作系统将可在压缩池中使用的物理内存量限制为最多 95%。 可通过将 vmo 命令与 ame_min_ucpool_size 参数配合使用来调整此值。 在先前的示例中, LPAR 内存大小为 20 GB 的情况下,如果 ame_min_ucpool_size 参数值设置为 90 ,那么将为压缩池保留 18 GB。 可实现的最大扩展内存大小将为 27.2 GB (2 GB + 1.4 x 18 GB)。 结果是 2.8 GB 短缺。 此缺口称为内存缺口。
内存缺口产生的影响与配置 LPAR 时指定的内存过少时产生的影响相同。 出现内存缺口时,操作系统无法实现为 LPAR 配置的扩展内存目标,并且操作系统可能必须求助于将虚拟内存页面调出至调页空间。 因此,在上述示例中,如果工作负载使用的内存超过 27.2 GB ,那么操作系统将开始将虚拟内存页面调出到调页空间。 为获取工作负载能否实现其扩展内存大小的指示,操作系统会报告内存缺口度量值。 这是扩展内存大小中不能实现的“黑洞”。 如果此缺口为零,那么表示可实现目标内存扩展因子,并且 LPAR 的内存扩展因子配置正确。 如果扩展内存缺口度量值非零,那么表示工作负载无法实现其扩展内存大小,不足之数为缺口大小。 为消除内存缺口,应降低 LPAR 的内存扩展因子。 但是,降低内存扩展因子会降低 LPAR 的扩展内存大小。 因此,要保持 LPAR 的扩展内存大小不变,必须降低内存扩展因子,并且必须将更多内存添加至 LPAR。 LPAR 的内存大小和内存扩展因子可动态更改。
规划注意事项
在动态内存扩展 (AME) 环境中部署工作负载之前,需要一些初始规划以确保工作负载通过 AME 获取最大收益。 AME 给工作负载带来的收益随工作负载的特征而变化。 某些工作负载获得的内存扩展可能比其他工作负载获得的内存扩展更高一级。 动态内存扩展规划和建议工具 amepat 帮助在动态内存扩展环境中规划工作负载的部署,并提供有关工作负载可实现的内存扩展级别的指南。
AME 规划工具
AME 规划工具(位于 /usr/bin/amepat 中)有两个主要用途。 它们是:
- 规划初始动态内存扩展配置
- 监视并微调动态 AME 配置
AME 规划工具可在启用和未启用 AME 的 LPAR 上运行。 在未启用 AME 的 LPAR 中,对代表性工作负载运行 amepat。 它应该设置为监视该工作负载一段有意义的时间。 例如,amepat 工具设置为在工作负载的资源使用高峰时间段持续运行。 一旦完成,该工具就会显示报告,其中包含各种潜在内存扩展因子以及每个因子可为 AME 贡献的期望 CPU 利用率。 该工具还提供了一个推荐的内存扩展因子,旨在最大限度地节省内存,同时尽量减少额外的 CPU utilizationThe报告和建议可以作为 AME 部署的有用初始配置。 在启用了 AME 的 LPAR 中,amepat 提供类似用途。 在高峰时间段针对代表性工作负载运行时,该工具会提供报告,其中包含在当前内存扩展因子下可贡献给 AME 的实际 CPU 利用率。 它还会显示内存缺口信息(如果存在)。 因为已启用 AME,所以该工具还可提供更精确的表示,指示在不同内存扩展因子下可期望的 CPU 利用率级别。 基于此信息的新建议将提供给用户。
# amepat 5 2
Command Invoked : amepat 2 5
Date/Time of invocation : Wed Dec 2 11:29:29 PAKST 2009
Total Monitored time : 10 mins 58 secs
Total Samples Collected : 5
System Configuration:
---------------------
Partition Name : aixfvt19
Processor Implementation Mode : POWER5
Number Of Logical CPUs : 8
Processor Entitled Capacity : 4.00
Processor Max. Capacity : 4.00
True Memory : 4.25 GB
SMT Threads : 2
Shared Processor Mode : Disabled
Active Memory Sharing : Disabled
Active Memory Expansion : Disabled
System Resource Statistics: Average Min Max
--------------------------- ----------- ---------- -----------
CPU Util (Phys. Processors) 2.00 [ 50%] 1.00 [ 25%] 3.00 [ 75%]
Virtual Memory Size (MB) 1366 [ 31%] 1113 [ 26%] 2377 [ 55%]
True Memory In-Use (MB) 1758 [ 40%] 1234 [ 28%] 3834 [ 88%]
Pinned Memory (MB) 673 [ 15%] 673 [ 15%] 675 [ 16%]
File Cache Size (MB) 391 [ 9%] 124 [ 3%] 1437 [ 33%]
Available Memory (MB) 841 [ 65%] 1812 [ 42%] 3099 [ 71%]
Active Memory Expansion Modeled Statistics
-------------------------------------------
Modeled Expanded Memory Size : 4.25 GB
Average Compression Ratio : 5.29
Expansion Modeled True Modeled CPU Usage
Factor Memory Size Memory Gain Estimate
--------- ------------- ------------------ -----------
1.00 4.25 GB 0.00 KB [ 0%] 0.00 [ 0%]
1.31 3.25 GB 1.00 GB [ 31%] 0.34 [ 8%]
1.55 2.75 GB 1.50 GB [ 55%] 0.39 [ 10%]
1.89 2.25 GB 2.00 GB [ 89%] 0.45 [ 11%]
2.12 2.00 GB 2.25 GB [112%] 0.50 [ 12%]
2.43 1.75 GB 2.50 GB [143%] 0.65 [ 16%]
2.83 1.50 GB 2.75 GB [183%] 0.70 [ 18%]
Active Memory Expansion Recommendation:
---------------------------------------
The recommended AME configuration for this workload is to configure the LPAR
with a memory size of 1.50 GB and to configure a memory expansion factor
of 2.83. This will result in a memory gain of 183%. With this
configuration, the estimated CPU usage due to AME is approximately 0.50
physical processors, and the estimated overall peak CPU resource required for
the LPAR is 3.50 physical processors.
NOTE: amepat's recommendations are based on the workload's utilization level
during the monitored period. If there is a change in the workload's utilization
level or a change in workload itself, amepat should be run again.
The modeled Active Memory Expansion CPU usage reported by amepat is just an
estimate. The actual CPU usage used for Active Memory Expansion may be lower
or higher depending on the workload.报告由 6 个部分组成,下面将按顺序说明。
命令信息
此部分提供有关传递至 amepat 的参数、调用时间、系统的总监视时间以及收集的样本数的详细信息。 在报告中, amepat
系统配置
系统资源统计信息
此部分显示监视时间段内的系统资源利用率。 它会显示系统资源利用率的平均值、最小值和最大值以及对应百分比。
在提到的报告中,工作负载平均使用 2.00 个物理处理器(如“CPU 利用率”行中所示),它是 LPAR 的最大物理容量(在“处理器最大容量”行中显示为 4.00)的 50%。
在上面提到的报告中,还可观察到工作负载的内存利用率。 所有内存百分比都是相对于 LPAR 的总真实内存大小的。
动态内存扩展统计信息
仅当在启用 AME 的 LPAR 中调用 amepat 工具时,才会显示此部分。
查找样本输出的示例:
AME Statistics: Average Min Max
--------------- ----------- -------- ---------
AME CPU Usage (Phy. Proc Units) 0.25 [ 6%] 0.01 [ 0%] 0.50 [ 13%]
Compressed Memory (MB) 264 [ 13%] 264 [ 13%] 264 [ 13%]
Compression Ratio 2.15 2.15 2.16
Deficit Memory Size (MB) 562 [ 55%] 562 [ 55%] 562 [ 55%]
This section of the report shows the AME CPU Usage, Compressed Memory,
Compression Ratio & Deficit Memory.
The Deficit Memory will be reported only if there is a memory deficit
in achieving the expanded memory size.
Otherwise the tool will not report this information.
For example in the above report, it can be observed that there is
an average memory deficit of 562 MB which is 55% of the Target
Expanded Memory Size of 2 GB (which is reported in the
System Configuration Section when AME is enabled).
The report also shows on an average 264 MB out of 2GB of expanded memory is in
compressed form as reported against Compressed Memory.动态内存扩展模型统计信息
此部分显示模型扩展内存大小、压缩比率、以及带有若干可能 AME 配置的表。 在所述报告中, "已建模的扩展内存大小" 是
报告为 4.25 GB ,这是 LPAR 的真实内存大小。 缺省情况下,amepat 使用分区的真实内存作为模型扩展内存。 这可以通过使用
-t 或 -a 选项。 报告显示平均压缩比率为 5.29,这指示工作负载压缩程度很高。 接近 1 的压缩比率可能表示
内存扩展是可能的。 建模表中显示的配置以作为目标内存的模型扩展内存大小为基础。
该表显示模型真实内存大小、模型内存收益以及针对各种扩展因子贡献给 AME 的额外 CPU 利用率。
例如,请参阅表中的以下行
1.55 2.75 GB 1.50 GB [ 55%] 0.39 [ 10%]此处可使用 2.75 GB 物理内存大小和扩展因子 1.55 实现原始真实内存大小 4.25 GB。 此配置可能导致 CPU 使用率增加
0.39 物理处理器 (最大容量的 10%)。
动态内存扩展建议
此部分显示针对工作负载提出的动态内存扩展配置建议。 最优配置从不会让 AME CPU 的使用率超过 15%。 此部分还提供了有关建议配置的 AME CPU 使用率和内存收益的信息。 在提到的报告中,可观察到建议的扩展因子为 2.12。 可使用 -c 或 -C 选项改变 AME CPU 使用率目标。
WARNING: This LPAR currently has a memory deficit of 562 MB.
A memory deficit is caused by a memory expansion factor that is too
high for the current workload. It is recommended that you reconfigure
the LPAR to eliminate this memory deficit. Reconfiguring the LPAR
with one of the recommended configurations in the above table should
eliminate this memory deficit.
The recommended AME configuration for this workload is to configure
the LPAR with a memory size of ...有关 AME 规划工具的这些用途及其他用途的更多信息,请参阅 amepat 联机帮助页。
性能监视
某些 AIX 性能工具可用于监视动态内存扩展统计信息并收集有关动态内存扩展的信息。
| 工具 | 选项 | 描述 |
|---|---|---|
| 阿美帕特 | -N | 提供常规 CPU 和内存利用率统计信息。 同时提供 AME 压缩和解压活动的 CPU 利用率指示以及压缩、解压和内存缺口统计信息。 |
| vmstat | -c | 提供压缩、解压和缺口统计信息。 |
| lparstat | -c | 提供 AME 压缩和解压活动的 CPU 利用率的指示。 同时提供内存缺口信息。 |
| svmon | -O 摘要=ame | 提供分为压缩和未压缩页面的内存用途的总结视图。 |
| topas | 缺省 topas 屏幕显示在 AME 环境中运行时的内存压缩统计信息。 |
vmstat 命令
vmstat 命令可与其 –c 选项配合使用来显示 AME 统计信息。
# vmstat –c 2 1
System configuration: lcpu=2 mem=1024MB tmem=512MB ent=0.40 mmode=dedicated-E
kthr memory page faults
r b avm fre csz cfr dxm ci co pi po in sy cs
0 0 309635 2163 43332 943 26267 174 386 0 0 93 351 339
cpu
us sy id wa pc ec
2 3 89 7 0.02 5.3
在以上输出中,提供了以下内存压缩统计信息:
- LPAR 的扩展内存大小 mem 为 1024 MB。
- LPAR 的真实内存大小 tmem 为 512 MB。
- LPAR 的内存方式 mmode 为禁用动态内存共享并启用动态内存扩展。
- 压缩池大小 csz 为 43332 个 4K 页。
- 压缩池中的可用内存量 cfr 为 943 个 4K 页。
- 扩展内存缺口大小 dxm 为 26267 个 4K 页。
- 每秒对压缩池执行的压缩操作数或页面调出数 co 为 386。
- 每秒从压缩池执行解压操作数或页面调入数 ci 为 174。
lparstat 命令
lparstat 命令可与 –c 选项配合使用来显示 AME 统计信息。
# lparstat -c 2 5
System configuration: type=Shared mode=Uncapped mmode=Ded-E smt=On
lcpu=2 mem=1024MB tmem=512MB psize=14 ent=0.40
%user %sys %wait %idle physc %entc lbusy app vcsw phint %xcpu dxm
----- ----- ------ ------ ----- ----- ------ --- ----- ----- ------ ------
45.6 51.3 0.2 2.8 0.95 236.5 62.6 11.82 7024 2 5.8 165
46.1 50.9 0.1 2.8 0.98 243.8 64.5 11.80 7088 7 6.0 162
46.8 50.9 0.3 2.1 0.96 241.1 69.6 11.30 5413 6 19.4 163
49.1 50.7 0.0 0.3 0.99 247.3 60.8 10.82 636 4 8.6 152
49.3 50.5 0.0 0.3 1.00 248.9 56.7 11.47 659 1 0.3 153在输出中,提供了以下内存压缩统计信息
- LPAR 的内存方式 mmode 为禁用动态内存共享并启用 AME。
- LPAR 的扩展内存大小 mem 为 1024 MB。
- LPAR 的真实内存大小 tmem 为 512 MB。
- 动态内存扩展活动的 CPU 利用率百分比 %xcpu。
- 扩展内存缺口大小 dxm(以兆字节计)。
topas 命令
启用了动态内存扩展的 LPAR 中的 topas 主面板
自动在子节 AME 下显示内存压缩统计信息。
Topas Monitor for host: proc7 EVENTS/QUEUES FILE/TTY
Mon Dec 14 16:30:50 2009 Interval: 2 Cswitch 1240 Readch 43.2M
Syscall 110.8K Writech 102.5K
CPU User% Kern% Wait% Idle% Physc Entc Reads 12594 Rawin 0
ALL 49.1 50.7 0.0 0.3 1.00 249.7 Writes 515 Ttyout 388
Forks 218 Igets 0
Network KBPS I-Pack O-Pack KB-In KB-Out Execs 218 Namei 5898
Total 1.2 7.5 1.0 0.9 0.3 Runqueue 1.0 Dirblk 0
Waitqueue 0.0
Disk Busy% KBPS TPS KB-Read KB-Writ MEMORY
Total 0.0 0.0 0.0 0.0 0.0 PAGING Real,MB 1024
Faults 53184 % Comp 85
FileSystem KBPS TPS KB-Read KB-Writ Steals 0 % Noncomp 0
Total 75.4K 21.1K 75.3K 95.4 PgspIn 0 % Client 0
PgspOut 0
WLM-Class (Active) CPU% Mem% Blk-I/O% PageIn 0 PAGING SPACE
System 0 61 0 PageOut 0 Size,MB 512
Default 0 4 0 Sios 0 % Used 1
% Free 99
Name PID CPU% PgSp Class AME
inetd 364682 3.5 0.5 wpar1 TMEM,MB 512 WPAR Activ 1
xmtopas 622740 0.4 0.7 wpar1 CMEM,MB 114 WPAR Total 1
topas 413712 0.1 1.5 System EF[T/A] 2.0/1.5 Press: "h"-help
random 204934 0.1 0.1 System CI:5.5 CO:0.0 "q"-quit在以上输出中,提供了以下内存压缩统计信息。
- LPAR 的真实内存大小 TMEM,MB 为 512 MB。
- LPAR 的压缩池大小 CMEM,MB 为 114 MB。
- EF[T/A] – 目标扩展因子为 2.0,实现的扩展因子为 1.5。
- 每秒压缩率 co 和解压率 ci 分别为 0.0 页和 5.5 页。
svmon 命令
svmon 工具可提供 LPAR 上的 AME 使用率的详细视图。
# svmon -G -O summary=ame,pgsz=on,unit=MB
Unit: MB
-------------------------------------------------------------------------------
size inuse free pin virtual available mmode
memory 1024.00 607.54 144.11 306.29 559.75 136.61 Ded-E
ucomprsd - 387.55 -
comprsd - 219.98 -
pg space 512.00 5.08
work pers clnt other
pin 213.34 0 0 28.9
in use 534.12 0 9.42
ucomprsd 314.13
comprsd 219.98
PageSize PoolSize inuse pgsp pin virtual ucomprsd
s 4 KB - 543.54 5.02 242.27 560.59 323.55
L 16 MB 4 0 0 64.0 0 0
-------------------------------------------------------------------------------
True Memory: 512.00
CurSz %Cur TgtSz %Tgt MaxSz %Max CRatio
ucomprsd 405.93 79.28 168.38 32.89 - - -
comprsd 106.07 20.72 343.62 67.11 159.59 31.17 2.51
txf cxf dxf dxm
AME 2.00 1.46 0.54 274.21在以上输出中,提供了以下内存压缩统计信息:
- LPAR 的内存方式 mmode 为禁用动态内存共享并启用 AME。
- 在总共 607.54 MB 使用中内存 memory_inuse 中,未压缩页 ucomprsd_inuse 占 387.55 MB,压缩页 comprsd_inuse 占余下的 219.98 MB
- 在总共 534.12 MB 的使用中的工作页 inuse_work 中,未压缩页 ucomprsd_work 占 314.13 MB,压缩页 comprsd_work 占 219.98 MB。
- 在总共 543.54 MB 的使用中的页 4KB_inuse(在 4K 页大小池中)中,未压缩页 4KB_ucomprsd 占 323.55 MB。
- LPAR 的扩展内存大小 memory_size 为 1024 MB。
- LPAR 的真实内存大小 True Memory 为 512 MB。
- 未压缩池 ucomprsd_CurSz 的当前大小为 405.93 MB(LPAR 的总真实内存大小的 79.28%)。
- 压缩池的当前大小 comprsd_CurSz 为 106.07 MB(LPAR 的总真实内存大小的 20.72%)。
- 实现目标内存扩展因子 txf 2.00 的压缩池的目标大小 comprsd_TgtSz 为 343.62 MB(LPAR 的总真实内存大小的 67.11%)。
- 此情况下的未压缩池的大小 ucomprsd_TgtSz 变为 168.38 MB(LPAR 的总真实内存大小的 32.89%)。
- 压缩池的最大大小 comprsd_MaxSz 为 159.59 MB(LPAR 的总真实内存大小的 31.17%)。
- 当前压缩比率 CRatio 为 2.51,实现的当前扩展因子 cxf 为 1.46
- 扩展内存缺口量 dxm 为 274.21 MB,缺口扩展因子 dxf 为 0.54。
–O summary=longame 选项提供内存压缩详细信息的总结,如下所示:
# svmon -G -O summary=longame,unit=MB
Unit: MB
Active Memory Expansion
--------------------------------------------------------------------
Size Inuse Free DXMSz UCMInuse CMInuse TMSz TMFr
1024.00 607.91 142.82 274.96 388.56 219.35 512.00 17.4
CPSz CPFr txf cxf CR
106.07 18.7 2.00 1.46 2.50在输出中,提供了以下内存压缩统计信息:
- 在总扩展内存大小 Size 1024.00 MB 中,607.91 MB 在使用中 (Inuse),142.82 MB 可用 (Free)。 扩展内存大小中的缺口 DXMSz 为 274.96 MB。
- 在使用中总内存 Inuse 607.91 MB 中,未压缩页 UCMInuse 占 388.56 MB,压缩页 CMInuse 占余下的 219.35 MB。
- 在总真实内存大小 TMSz of 512.00 MB, only 17.4 MB of True Free memory TMFr is available.
- 在压缩池大小 CPSz 106.07 MB 中,压缩池内仅提供了 18.7 MB 的可用内存 CPFr。
- 当目标扩展因子 txf 为 2.00 时,实现的当前扩展因子 cxf 为 1.46。
- 压缩比率 (CR) 为 2.50。