分享
 
 
 

动态内存

王朝百科·作者佚名  2010-09-25
窄屏简体版  字體: |||超大  

定义动态内存(Dynamic Memory),使用户能够指定虚拟操作系统启动的RAM容量,并将平台可用的系统内存最大化。

Integrity VM 的可选功能,通过该功能,您可以更改虚拟机使用的物理内存量,而无须重新引导该虚拟机。在 Integrity VM 的本发行版中,只能在 HP-UX guest 虚拟机上使用动态内存。

例如,该功能允许将作为 Servicegard 节点的 guest 虚拟机用作多个 Serviceguard 程序包的备用服务器。当程序包故障切换到 guest 虚拟机时,可在故障切换之前、之后或期间更改 guest 虚拟机的内存,使其符合程序包的要求。要使用动态内存,guest 虚拟机必须安装 guest 虚拟机管理软件。

从 VM Host 管理动态内存在 VM Host 中,动态内存软件随 Integrity VM 一起提供。可使用hpvmcreate、hpvmmodify或hpvmclone命令的 -x 选项在 VM Host 上管理动态内存。-x 选项可将各种配置参数与 guest 虚拟机(包括 guest 虚拟机的动态内存和网络管理)相关联。表 1提供了用于动态内存的 -x 关键字的完整列表。

表 1 动态内存控制命令选项

关键字值对

说明

dynamic_memory_control={1|0}

指定 guest 虚拟机上具有足够权限的用户(例如 root)能否在 guest 虚拟机运行时更改动态内存值。要禁用 guest 虚拟机端的动态内存控件,请指定 0(零)。如果 guest 虚拟机不处于活动状态,唯一的影响是将修改 guest 虚拟机配置文件。在正在运行的 guest 虚拟机上,更改可立即生效。

ram_dyn_type={none|any|driver}

指定 guest 虚拟机的动态内存控件的类型。将此配置参数设置为 none 时,将禁用动态内存。这是缺省设置。如果在启用动态内存的情况下运行 guest 虚拟机,并且将此值设置为 none,则会修改 guest 虚拟机配置文件,以便删除所有动态内存范围和控制信息。 如果将此配置参数设置为 any,则下一次引导 guest 虚拟机时将确定是否在该 guest 虚拟机上启用动态内存。如果已加载动态内存驱动程序,则该参数的值将更改为 driver。如果未加载或未找到任何驱动程序,则不会更改该值。

将此配置参数设置为 driver 时,guest 虚拟机的动态内存控件和范围可正常运行。根据当前设置或缺省设置,可显示消息,指示重置动态内存范围值以便匹配当前内存范围设置。如果使用 -r 选项更改可用 guest 虚拟机内存值,则会验证动态内存值是否在指定范围内,并进行相应的修改。

ram_dyn_min=内存量

指定可向 guest 虚拟机动态分配的最小内存量。ram_dyn_min 值必须大于最小内存(由hpvmstatus命令显示),且小于 ram_dyn_max 值。

ram_dyn_max=内存量

指定可向 guest 虚拟机动态分配的最大内存量。ram_dyn_max 的值必须大于 ram_dyn_min 的值。

ram_dyn_target_start=内存量

指定启动 guest 虚拟机时动态内存驱动程序尝试访问的内存量。ram_dyn_target_start 的值必须大于 ram_dyn_min 参数,且小于或等于 ram_dyn_max 参数。guest 虚拟机启动时,最初会访问 guest 虚拟机内存大小(由 -r 选项指定),然后动态内存驱动程序会将内存降低到 ram_dyn_target_start 参数的值。

ram_target={0|start|内存量}

设置 guest 虚拟机的当前内存大小。ram_target关键字仅在hpvmmodify命令和hpvmmgmt命令中有效。指定为 0(零)时,动态内存驱动程序会将 guest 虚拟机上的内存降至适当的最小值,而不会强制对 guest 虚拟机内存进行页面换出操作。由于 guest 虚拟机的运行会发生更改,因此,最小值将随时间而变化。指定 start 时,guest 虚拟机的动态内存大小会增大到使用 -r 选项指定的分配值。该参数为动态参数,只能在活动 guest 虚拟机上使用。

配置虚拟机以使用动态内存

缺省情况下,不启用动态内存。要配置虚拟机以使用动态内存,请输入hpvmcreate、hpvmmodify或hpvmclone命令。包含以下 -x 选项以设置初始值:

-x ram_dyn_type = any | driver-x ram_dyn_min = minimum size for memory size changes-x ram_dyn_max = maximum size for memory size changes

可在引导过程的早期阶段配置虚拟机,以减少其内存大小,从而使虚拟机在 VM Host 系统上保持可用并使内存开销较低。使用以下 -x 选项可启用此功能:

-x ram_dyn_target_start = memory size after boot

可在同一命令行上提供多个动态内存关键字。例如,要启用动态内存并配置名为 compass1 的 guest 虚拟机以便在引导进程初期减少其大小,请输入以下命令:

#hpvmmodify -P compass1 -r 6G -x ram_dyn_type=any -x ran_dyn_min=1222M -x ram_dyn_max=6G -x ram_dyn_target_start=2G

该命令指定下列值:

将虚拟机内存大小设置为 6 GB。

通过使用任何可用的动态内存支持启用了动态内存。

此虚拟机可以减少至的最小内存量为 1222 MB。

此虚拟机可以增加至的最大内存量为 6 GB。

引导后减少至的内存量为 2 GB。

首次配置动态内存功能时,如果虚拟机正在运行,必须重新引导此虚拟机,才能使配置更改生效。

在 VM Host 上查看动态内存

可使用 Integrity VM 标准命令,为每个 guest 虚拟机显示动态内存参数和状态。例如,对于名为 compass1 的 guest 虚拟机,使用hpvmstatus命令可显示以下动态内存信息:

#hpvmstatus -V -P compass1...[Dynamic Memory Information] Type : driver Minimum memory : 1222 MB Target memory : 2103 MB Maximum memory : 6144 MB Current memory : 2103 MB Comfortable minimum : 2167 MB Boot memory : 6135 MB Free memory : 125 MB Available memory : 286 MB Memory pressure : 0 Memory chunksize : 65536 KB Driver Mode(s) : STARTED ENABLED...

表 2说明了hpvmstatus命令和hpvmmgmt命令显示的动态内存的特性。

表2 动态内存的特性

特性

设置

说明

类型

none

不支持动态内存

any

已在主机上配置动态内存,但是 guest 虚拟机上的动态内存子系统未启动并报告实现的类型。

driver

在驱动程序中实现动态内存,且不使用 Guest 虚拟机操作系统联机添加/删除功能。

OLAD

使用 Guest 虚拟机操作系统联机添加/删除功能实现动态内存。

最小内存量

值M(兆字节)或值G(千兆字节)

ram_target 和 ram_dyn_target_start 的下限。

目标内存

值M(兆字节)或值G(千兆字节)

guest 虚拟机的目标内存大小,可使用 ram_target 或 ram_dyn_target_start 进行设置。

最大内存量

值M(兆字节)或值G(千兆字节)

ram_target 和 ram_dyn_target_start 的上限。

当前内存

值M(兆字节)或值G(千兆字节)

guest 虚拟机的当前内存大小(通常等于目标内存)。

适当的最小值

值M(兆字节)或值G(千兆字节)

ram_target 的值,可用于降低 guest 虚拟机的内存,但允许使用足够的内存资源来继续运行最少的工作负荷。

引导内存

值M(兆字节)或值G(千兆字节)

向 guest 虚拟机操作系统提供的虚拟机中的物理内存大小。

空闲内存

值M(兆字节)或值G(千兆字节)

guest 虚拟机中的空闲内存量。

可用内存

值M(兆字节)或值G(千兆字节)

guest 虚拟机中已由用户进程分配但未锁定的内存量。该内存可用于分页。

内存压力

介于 0 至 100 之间的一个值,用于指示内存不足和分页。值越大,系统内存不足的时间越长。通常,内存压力值接近 100 表示系统已挂起。

内存块大小

增大或减小 guest 虚拟机内存时动态内存使用的分配块大小。

驱动程序模式

started

动态内存可更改 guest 虚拟机的内存大小。

enabled

取代started的控制。

guestctl

启用 guest 虚拟机端控件。

在 VM Host 上修改虚拟机的内存大小

配置动态内存后,可以以块大小 (64 MB) 为增量,将虚拟机内存大小更改为介于最小大小 (ram_dyn_min) 和最大大小 (ram_dyn_max) 之间的任意值。请使用hpvmmodify命令的以下 -x 选项更改内存大小:

# hpvmmodify -P compass1 -x ram_target = new memory size

从 Guest 虚拟机管理动态内存缺省情况下,从 guest 虚拟机管理动态内存的功能将被禁用,必须通过 VM Host 启用此功能。如果未启用此功能,则可显示动态内存信息,但是无法更改内存大小。

可使用hpvmcreate、hpvmmodify或hpvmclone命令,并包含-x dynamic_memory_control选项。指定 1 作为该选项的参数。例如,在 VM Host 系统中,输入以下命令可在名为 compass1 的 guest 虚拟机上启用动态内存控件:

# hpvmmodify -P compass1 -x dynamic_memory_control=1

从 Guest 虚拟机查看动态内存信息

可在 HP-UX guest 虚拟机上使用hpvmmgmt命令管理和查看动态内存信息。安装 guest 虚拟机管理软件时将安装该命令。

表 3说明了hpvmmgmt命令的选项。

表 3 hpvmmgmt 命令的选项

-l 类型

指定要列出相关详细信息的数据类型。对于类型,请输入ram。

-l 类型 -t 间隔

允许连续监视和查看动态 ram 值。对于间隔,请指定两次提取实时数据之间的秒数。

-t 间隔

允许hpvmmgmt命令使用针对间隔参数指定的值连续重新提取请求的数据类型。

-v

显示hpvmmgmt命令的版本号。

-V

显示有关虚拟机的详细信息(详细模式)。

-M

以机器可读格式显示详细的属性和资源信息。

-X

以 XML 格式显示详细的属性和资源信息。

-x ram_target={0 | start | 内存量}

指定 guest 虚拟机 RAM 目标,其中: 0 表示 guest 虚拟机动态内存将被降低到一个适当的最小值。start 表示 guest 虚拟机动态内存将被设置回引导时的值。amount 是 guest 虚拟机的特定目标内存大小。

例如,在 guest 虚拟机上,使用hpvmmgmt命令列出动态内存信息。输入以下命令:

# hpvmmgmt -l ram [Dynamic Memory Information] ======================================= Type : driver Current memory : 6135 MB Target memory : 6135 MB Comfortable minimum : 2167 MB

要显示详细信息,请包含 —V 选项。例如:

# hpvmmgmt -V -l ram [Dynamic Memory Information] ======================================= Type : driver Current memory : 2103 MB Target memory : 2103 MB Comfortable minimum : 2423 MB Minimum memory : 1222 MB Maximum memory : 6144 MB Boot memory : 6135 MB Free memory : 124 MB Available memory : 286 MB Memory pressure : 12 Memory chunksize : 65536 KB Driver Mode(s): STARTED ENABLED GUESTCTL

在 Guest 虚拟机上修改虚拟机的内存大小

配置和启用动态内存功能后,可以一个块的大小 (64 MB) 为单位,将虚拟机内存大小更改为介于最小大小 (ram_dyn_min) 和最大大小 (ram_dyn_max) 之间的任意值。可使用hpvmmgmt命令的以下 -x 选项:

# hpvmmgmt -x ram_target=memory size

例如,要将 guest 虚拟机内存大小修改为 4 GB,请输入以下命令:

# hpvmmgmt -x ram_target=4096MAttempting to increase memory from 2103 MB to 4096 MB.Successfully began to change ram_target to 4096 MB.

排除动态内存故障动态内存限制使用动态内存具有下列限制:

虚拟机大小不能增加到其初始引导大小(如 -r 选项所指定)以上。如果虚拟机内存已产生碎片,则尝试减少虚拟机大小可能会失败或需要很长时间。如果无法将虚拟机大小降低到所需大小,请通过设置新的目标大小来异常中止操作。增加虚拟机大小需要 VM Host 上具有一定的可用内存。如果 VM Host 内存不足,该操作可能需要很长时间才能完成,并可能失败。如果 ram_target 和 ram_dyn_target_start 的值不在 ram_dyn_min 和 ram_dyn_max 值之间,则会发出一条警告。

VM Host 资源注意事项

HP-UX 支持“大型页面”内存管理功能,可用于提高性能。Integrity VM 可通过确保在虚拟机启动时分配容量最大的可用页面来实现此功能。一旦分配并锁定这些页面之后,将无法更改其大小。此限制可使大型页面的碎片降至最低。

该功能会限制可在 VM Host 系统上运行的软件类型。如果 VM Host 系统支持虚拟机以外的其他工作负荷,则大型页面可能会产生碎片,并可能导致新启动的虚拟机性能降低。

动态内存增加了 VM Host 内存产生碎片的可能性。动态内存的当前实现方式可释放向虚拟机分配的内存部分。必须以大型连续块为单位执行这些操作;否则,减少虚拟机大小会使为该虚拟机分配的 VM Host 内存产生碎片。可通过软件防止产生此潜在碎片,即以物理连续内存的最小块大小 64 MB 的倍数为单位减少虚拟机大小。

Guest 虚拟机资源注意事项

运行某一工作负荷的系统正常运行期间,大型页面可能会逐渐产生碎片。VM Host 和运行 HP-UX 操作系统的虚拟机都会出现这种情况。如果虚拟机内存产生碎片,动态内存子系统将无法减少 guest 虚拟机的大小。这是因为此减少大小的操作使用最小块大小。如果动态内存无法删除至少 64 MB 的物理连续 guest 虚拟机内存,则不会减少大小。

指定足够的 Guest 虚拟机内存

如果将 ram_dyn_target_start 的值设置得过小,则 guest 虚拟机操作系统可能会在引导时挂起或崩溃。此种情况下,guest 虚拟机无法访问足够的内存量。通常,降低分配给 HP-UX guest 虚拟机的内存时降幅不能超过其分配的内存大小的 75%。对于配置了 2 GB 内存的虚拟机,其内存降低幅度不能超过 50%。

如果 guest 虚拟机在引导时崩溃,请在 VM Host 上使用hpvmmodify命令增大 ram_dyn_target_start 参数的值。例如,要增加名为 compass1 的 guest 虚拟机的内存大小,请在 VM Host 上输入以下命令:

# hpvmmodify -P compass1 -x ram_dyn_target_start=2GB

设置该参数之后,请重新引导该 guest 虚拟机。

如果 guest 虚拟机挂起,请在 VM Host 上使用hpvmstatus命令查看 guest 虚拟机上的内存统计信息。例如:

# hpvmstatus -V -P compass1...[Dynamic Memory Information] Type : driver Minimum memory : 1222 MB Target memory : 2103 MB Maximum memory : 6144 MB Current memory : 2103 MB Comfortable minimum : 2167 MB Boot memory : 6135 MB Free memory : 0 MB Available memory : 286 MB Memory pressure : 100 Memory chunksize : 65536 KB Driver Mode(s) : STARTED ENABLED...

该问题的一个指示为可用内存量过小或为零,并且内存压力值较大 (100)。如果出现这些指示,请在 VM Host 上使用hpvmmodify命令增加 guest 虚拟机的内存大小。然后,按正常方式引导该 guest 虚拟机。

实际内存分配可能不相同

如果指定的 ram_target 或 ram_dyn_target_start 参数的值所更改的内存大小不是 64 MB 的倍数,则会重置目标值。

例如,如果指定 6 GB 的内存,HP-UX guest 虚拟机实际可访问 6135 MB 的内存。如果尝试将内存大小设置为 2048 MB,则实际删除的内存大小为 4087 MB。由于它不是 64 MB 的倍数,因此会将目标内存大小重置为 2103 MB。

在 Guest 虚拟机和 VM Host 上启用动态内存

在 VM Host 系统中使用动态内存参数之前,必须在 guest 虚拟机上安装 guest 虚拟机管理软件。例如,如果未安装 guest 虚拟机管理软件,hpvmstatus命令将显示以下内容:

# hpvmstatus -V -P compass1...[Dynamic Memory Information] NOTE: Dynamic data unavailable, configured values onlyType : driverMinimum memory : 1024 MBTarget memory : 2048 MBMaximum memory : 3072 MB...

如果尝试从 VM Host 修改 guest 虚拟机的动态内存,则会显示下列错误:

# hpvmmodify -x ram_target=2048M -P compass1hpvmmodify: ERROR (compass1): Query to dynamic memory driver failed: Function is not available.hpvmmodify: Failed to set ram_target.hpvmmodify: Unable to modify the guest.

如果尝试从 guest 虚拟机修改动态内存,则会显示下列错误:

# hpvmmgmt -V -l ramDynamic memory driver not found on guest.hpvmmgmt: Unable to continue.# hpvmmgmt -x ram_target=2048Failed to open dynamic memory driver, error: No such device.Failed to set dynamic value error: No such devicehpvmmgmt: Unable to continue.

在升级 Integrity VM 时升级 Guest 虚拟机工具包

动态内存软件包含两个组件:VM Host 支持和 HP-UX guest 虚拟机支持。要使动态内存正常运行,以上两个组件的版本级别必须相同。升级 Integrity VM 时,还必须在 guest 虚拟机上安装新的 guest 虚拟机工具包(如果不再支持 guest 虚拟机操作系统,则应同时升级该操作系统)。在此升级过程中,动态内存可能无法运行。

如果版本不匹配,启动 guest 虚拟机时会向 VM Host 的 syslog 文件 (/var/adm/syslog/syslog.log) 写入一条消息。例如:

vmunix: (hpvmdvr) Dynamic memory version mismatch Guest 5. Please update the guest kit

此示例表明编号为 5 的虚拟机上的 guest 虚拟机管理软件工具包已过期。要确定编号为 5 的虚拟机,请使用hpvmstatus命令。在以下示例中,guest 虚拟机 5 名为dale:

# hpvmstatusVirtual Machine Name VM # OS Type State #VCPUs #Devs #Nets Memory Runsysid==================== ===== ======= ========= ====== ===== ===== ======= ========chip 1 HPUX On (OS) 2 1 1 3 GB 0dale 5 HPUX On (OS) 2 1 1 3 GB 0

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有