3.5.1 ASM规划及实现

2023-11-05

最后更新2021/08/14

AMS规划

规划涉及到几个参数,它们之间互相影响,如果需要修改其中一个,注意是否需要同时修改其它几个。下面是几个重要参数及其概念:

  • Memory Pool size共享内存池的大小
  • 使用同一共享内存池的分区数量
  • 各个分区的内存分配
  • AMS的交换区Paging Space

以下两个概念相互影响。过度分配比率越高,系统性能越差,但并不是线性变差,而是初始平缓,忽然陡峭,因此设计一定的过度分配比率,从整体效果看,反而可以提升系统性能(因为可用物理内存增多)。

  • 过度分配
  • 性能

Memory pool的大小是全部期望共享内存分区可供分配的物理内存大小。Memory Pool大小可以设定一定的“过度分配”,就是设定可用内存超过实际物理内存大小,但建议过度分配比率不要超过2倍。类似的设计建议如下:

  • 全部共享内存分区desired memory之和 <= 2 * Memory Pool Size
  • 每个共享内存分区在管理vio上都有自己对应的一个paging 设备,可以是LV,也可以是裸磁盘hdisk
  • paging设备大小要大于分区最大内存大小(如果是i分区,需要额外再加大一点)

AMS实现

AMS需要Power 6以后的CPU,较新的微码、操作系统版本以及Enterprise PowerVM授权支持:

  • 小型机系统微码必须是340_029以上(Power 570,其他型号的微码需求请查询IBM网站),通常目前大部分Power 6的小型机,及所有的Power 7/8 的小型机都支持AMS)。通过小型机FSP ASMI界面或者HMC都可以查看当前微码。
    查看微码图 4-23 通过ASMI查看微码版本

  • VIO Server版本
    要配置AMS的分区所在小型机必须已经配置了VIOS,其版本需要在2.1.0.0以后,在VIO上执行ioslevel可以查看VIOS版本。
    查看vio版本图 4-24 查看VIOS版本

  • AIX操作系统版本
    需要配置AMS功能的分区需要AIX 6.1.3.0(TL3)或6.1.2.0(TL2 build 0837A_61D)及以后版本,可以用oslevel查看(oslevel -s可以查看更详细信息,包括service pack等)。查看aix_release.level 文件的内容可以获得当前AIX build release的版本。另外,某些Linux也支持AMS功能,例如Novell SuSE SLES11。
    查看AIX版本图 4-25 查看AIX版本

  • AMS也需要比较高的HMC版本,HMC至少要V7R3.4.0,Build 20080915.1或Service Pack 2 (V7.3.4.0M2)
    查看HMC版本图 4-26 查看HMC版本

  • AMS同时还需要小型据具体有相应的License授权。当前示例中Active Memory Sharing项标记为False表示本小型机不具有AMS授权,不能配置AMS。在后面操作中将介绍如何激活新的授权(当然前提是已经确认从IBM购买了对应的授权License,但是还没有输入新的授权码)。
    微码授权- 输入新的授权码。IBM小型机PowerVM的授权分为3级,暨Express、Standard、Enterprise。AMS功能项包含在Enterprise授权中。具体获得授权码、输入激活授权的过程请参考一节。
    输入VET授权图 4-27 输入VET授权激活AMS
    在这里插入图片描述图 4-28 激活AMS授权后状态

  • AMS需要VIOS 2.1.0.1-FP21以后版本。如果没有安装VIO或者版本不对,HMC配置AMS操作时将提示错误。否则会提示"Maximum number of memory pools: 1"
    AMS是否可用图 4-29 显示AMS是否可用

  • 创建AMS交换区。交换区Paging Space需要创建在VIO上,与AIX 的paging space概念完全相同,用于物理内存不够时临时保存物理内存中的数据,但AMS的Paging Space对应于同一内存池中的所有分区,而AIX的paging space仅作用于当前操作系统,即一个分区之内。下面的示例中我们使用VIOS的内置SAS磁盘(hdisk1)创建AMS的交换区VG,volume group名称为"amspagingvg"
    交换区设置图 4-30 创建VG用于AMS Paging Space

现在交换区卷组已经设置,而每个分区需要自己单独的LV。例如我们建立了一个10G大小的逻辑卷LV,如图所示:
创建lv注意:

  1. 每个paging LV只能支持一个共享内存分区,如果有多个,则需要创建多个LV
  2. 10G大小是我们临时设定,实际规划大小应该满足既要大于分区profile中最大内存大小,同时要小于全部ASM内存pool的大小(小了不够,多了浪费)
  3. 最后,上图中LV类型不对,如果不指定LV类型,命令省缺是jfs,而我们需要特别在创建时指定LV类型为:TYPE=vrmdevice 当然也可以创建后更改为此类型,如下图所示。
    更改LV类型
  • 创建共享内存pool( Shared Memory Pool)

当前技术下,一个共享内存pool支持最多128个共享内存分区。共享内存分区的内存由VIO的 SMM (Shared Memory Manager)同一管理,因此共享内存pool需要分配给一个VIO,此VIO分区被称为PSP (Paging Service Partition),它对CPU无要求,可以是Dedicated也可以时Shared Processors,但必须采用Dedicated Memory,这也很好理解,Shared Memory无法再去被share。

指派给AMS Shared Memory Pool的物理内存可以也仅可以被全部共享内存分区使用,因此不能把全部物理机的内存都分配到共享内存Pool中,因为可能还有其它分区,特别是Hypervisor(表现为Firmware)内存占用。

下面我们具体看一下如何通过HMC创建共享内存pool

在HMC GUI选择物理机,在物理机信息里面可以找到"Create Shared Memory Pool"
管理共享内存pool指导菜单在实际创建之前,假设我们已经记录好系统可用物理内存,做好了规划。在本例中,我们创建10GB的共享内存Pool,拥有6GB物理内存,而整机当前剩余可用物理内存为8G。

先选择用于paging的VIO,最少一个,最多2个。如果选用双VIO,则需要paging设备位于共享存储池中。在本例中由于选用的是内置存储做paging设备,因此只能有一个paging vio:
paging vio下一步选择paging设备,重复此步直到将所有paging设备都加入进去,先点击select device按钮获得可用设备列表:
选择paging设备在列表中应当显示出已经加入到共享内存pool的paging设备的信息,包括:

  • paging设备所属VIO分区名称
  • paging设备名称
  • paging设备大小
  • paging设备状态,可能状态有:
    Active: 当前正在使用
    Inactive: 当前未使用
  • paging设备的冗余状态:
    True: 指两个VIO分区都能正常访问paging设备(但注意,指表明VIO访问paging设备是冗余的,并非双VIO可以同时冗余工作。也就是如果一个VIO故障,所支持的共享内存分区会down,但是由于有冗余VIO供访问,重启该共享内存分区可以正常使用。如果没有VIO冗余,则重启共享内存分区不成功)
    False: 只有一个VIO分区可以访问paging设备
  • paging设备的物理位置代码.

选择列表设备,将paging设备指派给共享内存pool ,可能需要点击Refresh按钮刷新列表:指派paging设备点击Refresh按钮能看到可选paging设备: 选择paging设备加如AMS pool后的状态最后确认共享内存创建完成之后,在VIO上检查"Virtual Async Services Interface (vasi)"和"Virtual Block Storage (vbsd)"设备是否正常Available,一般会有4个VASI adapter,如果此VIO是LPM mover分区,可能会有更多。这些都是系统自动定义,无需人工干预。

每个AMS VASI adapter支持最多32流IDs, 每个流ID需要一个paging device. 因此可以最多支持128个共享内存分区。也就是每个流ID与一个共享内存分区以及一个paging设备绑定。但绑定关系是目前系统根据共享内存分区设定的内存大小和paging设备容量自动完成的,无法人工干预。
vio设备
至此,共享内存pool设置完成,下一步来看一看每个共享内存(客户)分区的设置。

  • 设置共享内存分区
    通过HMC GUI,HMC -> Tasks -> Configuration -> Create Partition -> Aix or Linux创建分区
    创建分区输入分区名输入profile名下一步,设置分区类型,注意,尽管此可是CPU类型,也必须选择Shared
    设置分区类型设置CPU设置共享内存设置共享内存参数:
    设置共享内存

按照设计输入参数,注意一下规则:
Desired memory :Maximum Memory (必须)不能低于1:64,强烈建议Minimum : Maximum 在1:64之间。例如如果设定2GB Minimum Memory,则Maximum不能大于128GB

如果设定Entitlement Memory,则Entitlement Memory不能大于Desired Memory

建议不要设定AME(Active Memory expansion factor),内存压缩对于大部分应用情况都会影响系统性能。

支持AMS的分区不能有物理IO设备。
分区物理IO作为示例,为分区添加一个虚拟以太网卡,一个虚拟scsi卡:
虚拟以太网卡虚拟scsi回顾启动参数最后回顾

  • VIO设置支持虚拟scsi(此步与AMS无直接关系,但分区需要VIO提供虚拟磁盘支持)

配置vscsi服务卡
设置vio vscsi卡vscsivscsi参数回顾新版HMC支持分区配置同步,可以通过Sync current configruation Capability参数设置。本系列最早介绍分区profile的时候说过,执行DLpar之后,分区存在一个”运行“状态,可能与HMC记录的profile状态不同,如果重启分区,那么分区会保持这个配置,而如果采用shutdown再激活分区profile的方式重启动,则分区配置会恢复为原profile的状态。为了避免这种情况发生,新HMC可以让分区运行状态随时将配置”同步“到profile保存,这需要将sync turned on来设置。缺省是off
关于syncHMC关于sync其实有三个选项:
Sync on,随时同步,保证profile永远和运行状态相同;
Sync off,关闭同步,profile不会因DLpar改变;
Sync suspended till next Activation/Apply,含义是不同步,与Sync off相同。但如果分区Shutdown之后,再次激活profile,则恢复成Sync on状态,也就是当前(临时)不同步,以后恢复为同步状态,便于用户临时测试资源调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3.5.1 ASM规划及实现 的相关文章

  • 折半查找

    什么是折半查找 折半查找其实通过字面上的意思就是大致就可以理解为每次查找的时候 选取中间下标的值进行查找 如果找不到 就判断这个要查找的数大于还是小于这个这个中间下标的值 如果大于 就把这个中间值的下标 1给到左边的下标 中间下标 就等于
  • 子域访问计数

    class Solution 利用hash表 对子域名计数 注意对字符串的划分 def subdomainVisits self cpdomains count for domain in cpdomains visits int doma

随机推荐

  • 第十三届蓝桥杯大赛真题PythonB组详解 内含周末献血日记

    前言 今天上午去献血啦 在成都市血液中心 待遇很好 体检通过后先发了一些食物 防止一会饿或者来之前空腹的童鞋 可以看出吃的还是比较不错的 正常的早饭也不会吃那么多 但是泡面的油包不能放 水是甜的加了糖之类的 面包不太好吃 就是纯面包 吃不了
  • 在vue中使用antV-G2展示柱状图

    介绍 G2 是一套基于图形语法理论的可视化底层引擎 以数据驱动 提供图形语法与交互语法 具有高度的易用性和扩展性 使用 G2 你可以无需关注图表各种繁琐的实现细节 一条语句即可使用 Canvas 或 SVG 构建出各种各样的可交互的统计图表
  • overleaf一些技巧(更新中)

    文章目录 前言 格式 技巧 感悟 前言 这种半懂不懂 学不明白的感觉真是太让人着迷了T T 一下来自我在使用overleaf过程中的资料总结 贴出了原地址 找个模板改一改比手撸一篇要快 内容部分来源 LaTeX基本命令使用教程 清晰实例 O
  • javascript之Math

    在javascript中Math是js的内置的对象 其中有很多属性和方法用来操作跟数学相关 属性Math PI Math方法有 Math random 随机数 Math ceil 向上取整 Math floor 向下取整 Math abs
  • 三种排序方法:冒泡排序,选择排序,sort()函数排序

    三种排序方法 冒泡排序 选择排序 sort函数排序 引言 为什么要写呢 因为我怕我忘了 一个寒假过去冒泡排序都不会手写了 其中的冒泡排序和选择排序为C语言实现 而sort函数排序则借助C 实现 并且还可以用sort函数对结构体进行排序 冒泡
  • 一文详细介绍什么是数据标注?

    机器学习和深度学习算法都依赖于数据 为构建可靠的人工智能模型 需要为算法提供结构良好且标注良好的数据 为了让机器学习算法学习如何完成特定任务 我们必须标注它们用于训练的数据 换句话说 标注数据很简单 但并不总是那么容易 幸运的是 我们将通过
  • 第一届世界区块链大会·三点钟峰会(W.B.C)在澳门开幕 万人峰会大咖云集明星嘉年华

    2018年4月23日晚 以 技术重构世界 为主题的第一届世界区块链大会 三点钟峰会 W B C 在中国澳门威尼斯人大酒店隆重开幕 为期三天 大会由世界区块链联合协会首倡 世界区块链大会组委会 三点钟 深创学院主办 深圳大学区块链研究院 银河
  • 解决org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.spring

    从svn上取下来的之前一直在开发的项目 因为项目我是中途接手的 所以同步下来 配置好tomcat 运行的时候报错 Cannot find class com lhzxt dhub MyExceptionHandler for bean wi
  • JavaScript基础(Dom操作)

    目录 一 BOM模型 1 1 BOM可实现功能 二 Window对象的常用属性 2 1 Window对象的常用方法 2 1 1 open 和close 方法 三 History对象 四 Location对象 五 Document对象的常用方
  • tab页过多,展现按钮可左右移动tab页

    1 结果如下图 tab太多 一行放不下 右侧展现左右按钮 鼠标移上tab页可左右移动 2 代码 功能按钮过多时 可左右移动 param id 按钮区域id param dom 按钮元素 param btnclass 按钮样式 param m
  • this指针详解

    什么是this指针 this是指向实例化对象本身时候的一个指针 里面存储的是对象本身的地址 通过该地址可以访问内部的成员函数和成员变量 一个对象的this指针并不是对象本身的一部分 其不会影响sizeof 对象 的结果 this指针的用处
  • 设计一个windows应用程序,定义一个Student类,包含学号和姓名两个字段,并定义一个班级类ClassList

    设计一个windows应用程序 定义一个Student类 包含学号和姓名两个字段 并定义一个班级类ClassList 该类包含一个Student集合 使用索引器访问该集合 1 创建一个Windows应用程序Myproject6 1 2 设计
  • vue自定义$confirm弹窗确认组件

    前言 1 Vue extend 使用基础 Vue 构造器 创建一个 子类 参数是一个包含组件选项的对象 vue单文件经过webpack打包之后是一个组件示例对象 因此可以传到Vue extend中生成一个包含此组件的类 2 new VueC
  • 关闭window10状态栏热点资讯

    前言 最近window10更新了 在桌面右下角的工具栏出现气温的小图标 占用了工具栏位置 挺不爽的 想关闭它 解决 1 在气温图标上 点击鼠标右键 然后选择资讯和兴趣 在弹出的下级菜单中选择 关闭
  • VC++6.0 没用atlstr.h 怎么办

    在VC 6 0中配置WTL9 0 提示没有atlstr h 这个文件 怎么办呢 于是把atlmisc h这个文件 复制一份 把名称改成atlstr h 不就OK了 又可使用CString 这个恶心的东西了 编绎一下试试 提示 error C
  • CSS选择器器练习之餐厅小游戏答案和解析(下)

    17 small last child 伪类选择器 last child选择最后一个子元素 18 plate nth child 3 伪类选择器 nth child 选择第n个子元素 19 bento nth last child 3 伪类
  • linux命令行将已有项目提交到github

    用git是在windows下用git的图形化界面进行操作的 这次有一个写了几天的小项目想提交到git上 linux命令行下面没有图形化的界面 所以全部需要git命令来操作 实践之后 主要是下面几个步骤 1 登陆github 创建一个repo
  • Layui之选项卡案例 详细易懂

    本期精彩 利用Layui框架实现动态选项卡 继上一篇已经实现了左边的树形菜单栏 这一关卡我们已通过 接下来就是实现右边的动态选项卡的关卡 上个关卡的效果及链接 链接 http t csdn cn tYccL 目录 本期精彩 利用Layui框
  • Android JNI开发从0到1,java调C,C调Java,保姆级教程详解

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 第一步首先配置Android studio的NDK开发环境 首先在Android studio中下载NDK
  • 3.5.1 ASM规划及实现

    最后更新2021 08 14 AMS规划 规划涉及到几个参数 它们之间互相影响 如果需要修改其中一个 注意是否需要同时修改其它几个 下面是几个重要参数及其概念 Memory Pool size共享内存池的大小 使用同一共享内存池的分区数量