aix虚拟内存管理器
aix内存的计算
aix内存的计算AIX 使用VMM(虚拟内存管理器)管理管理RAM 和虚拟页面的分配。
“在AIX 中,将所有的虚拟内存段划分为若干个页面,每个页面的缺省大小为4KB。
所分配的页面可以位于RAM 或者分页空间(虚拟内存存储于磁盘上)。
VMM 还维护一个称为空闲列表的对象,该对象定义为未分配的页帧。
它们用于处理缺页的情况。
通常存在少量未分配页面(您可以自行配置),VMM 可以使用这些页面来腾出空间并为其重新分配页帧。
可以使用VMM 的页面置换算法来选择要重新分配页帧的虚拟内存页面。
这种分页算法可以确定对当前位于RAM 中的哪些虚拟内存页面的页帧进行回收,并放回到空闲列表中。
AIX 可以使用所有可用的内存,除了那些配置为未分配并用做空闲列表的内存之外。
”VMM 将虚拟内存段划分为两种不同的类别。
它们分别是,使用计算内存的工作段和使用文件内存的持久段。
计算页面当进程对计算信息进行处理时,将使用到计算内存。
这些工作段是临时的(暂时的),并且当进程终止或者页面被替换时,这些工作段将不复存在。
它们没有对应的持久磁盘存储位置。
在许多情况下,当一个进程终止时,将释放其物理和分页空间。
在VMM 中,当空闲物理内存较少时,可以将最近没有使用的程序从RAM 移出到分页空间,以帮助释放物理内存,从而完成更多的实际工作。
文件页面与计算内存不同,文件内存使用了持久段,并在磁盘上具有持久存储位置。
数据文件或者可执行程序通常都映射为持久段,而不是工作段。
数据文件可能与文件系统相关,如JFS、JFS2 或NFS。
它们一直都位于内存中,直到文件被卸载、页面被替换、或者取消了到文件的链接。
在将数据文件复制到RAM 中之后,VMM 控制何时对这些页面进行覆盖或者将其用于存储其他数据。
在可以选择的情况下,大多数人更希望将文件内存调出到磁盘,而不是计算内存。
从以上分析可以得出,计算AIX内存实际使用的量时,应该是:计算内存*100 / 总内存使用svmon –G 命令时,即为work * 100 / memory size.不过上述计算也不完全正确,因为work 页面可能于交换空间,而不是实际内存中。
优化FLR AIX系统虚拟内存参数配置说明
优化FLR AIX系统虚拟内存参数配置说明问题现象:从北京电信双模网关历次巡检的日志记录中发现,系统剩余内存有持续走低趋势;问题经分析:AIX虚拟内存管理器(AIX VMM) 是一种基于分页的虚拟内存管理器,AIX VMM 有一个非常独特的方面,即缓存的文件数据的管理,文件数据将缓存于永久存储分页的内存中。
由于系统虚拟内存参数中maxperm设置过高,对文件的读、写、拷贝等操作时,导致占用过多的内存,致使剩余内存呈现走低趋势。
处理方案:1、数据备份:使用telnet工具(如telnet命令、Netterm工具或XManager工具等)root用户分别登录flrdbsrv1、flrdbsrv2机器,执行如下指令:#vmo -L maxclient% -L maxperm% -L minperm% -L v_pinshm返回结果中CUR列值记录;另外,备份业务处理机程序2 、使用telnet工具(如telnet命令、Netterm工具或XManager工具等)root用户分别登录flrdbsrv1、flrdbsrv2机器,执行如下指令:#vmo -L maxclient% -L maxperm% -L minperm% -L v_pinshm返回结果中CUR列值顺序应为:10 10 5 1。
3、如不对,root用户分别登录flrdbsrv1、flrdbsrv2机器,执行如下指令:#vmo -p -o maxclient%=10 -o maxperm%=10 -o minperm%=5 -ov_pinshm=14、执行如下命令,确认参数是否修改成功:#vmo -L maxclient% -L maxperm% -L minperm% -L v_pinshm返回结果中CUR列值顺序应为:10 10 5 1。
5、root用户登录flrdbsrv2,输入“smitty clstop”命令,出现如下界面:* Stop now, on system restart or both now +Stop Cluster Services on these nodes [flrdbsrv2] + BROADCAST cluster shutdown? true +* Shutdown mode graceful +。
AIX关于LUNPVVG和LV
AIX关于LUNPVVG和LV AIX是一种广泛用于UNIX操作系统的操作系统,它提供了众多强大的存储管理功能,其中LUN(逻辑单元号码)、PV(物理卷)、VG(卷组)和LV(逻辑卷)是其中的关键概念。
本文将探讨AIX中关于LUNPVVG和LV的相关内容,以帮助读者更好地理解和管理存储资源。
1. LUN(逻辑单元号码)LUN,或逻辑单元号码,是一种虚拟存储设备,通常映射到物理存储设备,如硬盘驱动器或存储阵列。
在AIX中,LUN用于创建PV和LV,以扩展文件系统或提供更多存储容量。
LUN的主要特点包括:- **虚拟性**:LUN是虚拟的存储设备,可以映射到不同的物理设备,使存储资源管理更加灵活。
- **容量**:每个LUN都有其自己的存储容量,管理员可以根据需要分配适当大小的LUN。
- **适用性**:LUN通常用于存储文件系统数据或虚拟化环境中的虚拟机磁盘。
2. PV(物理卷)PV,或物理卷,是AIX中存储管理的基本单元。
它代表着物理存储设备,如硬盘驱动器或LUN。
PV具有以下特点:- **物理性**:PV对应于实际的硬件设备,它们是存储资源的基本构建块。
- **管理**:PV可以添加到或从卷组中删除,使管理员能够管理存储资源的分配和释放。
- **数据可靠性**:PV通常使用RAID(冗余磁盘阵列)来提高数据可靠性,以防止数据丢失。
3. VG(卷组)VG,或卷组,是一个逻辑实体,它将一个或多个PV组合在一起。
VG具有以下特性:- **抽象性**:VG提供了一个抽象层,将多个PV组合成一个统一的存储池。
- **容量扩展**:当需要更多的存储容量时,可以向VG添加新的PV。
- **数据保护。
AIX小型机系统监视工具参数详解和调整内存的使用综述
1、监视和调整内存的使用一个系统的内存通常会几乎被占满。
即使当前运行的程序没有消耗掉所有的内存,操作系统也会将较早运行的程序和它们所使用的文件的文本页面驻留在内存。
这样的驻留并没有任何的开销,因为内存无论如何都不会去使用这一段内存。
在许多情况下,程序或者文件将会被再次用到,这样可以减少磁盘的输入输出。
检测有多少内存正被使用一些测试性能的工具提供了内存使用的报告。
我们最感兴趣的报告是由 vmstat ,ps ,和svmon 命令提供的。
vmstat 命令(内存)vmstat命令概括了系统中所有进程所使用的活动的虚拟内存,同时还有空闲列表上实际内存页的数量。
活动的虚拟内存被定义为虚拟内存中实际可以得到的工作的段页的数量(参考页面后分配中的定义)。
这个数字可能大于机器中实际页面的帧,因为一些动态虚拟内存也可能写到字分页空间以外去。
在检测内存是否短缺或者是否有需要调优内存,一系列时间间隔里输入vmstat命令,在结果报告中检验 pi 和 po 栏。
这两栏表明了每秒页面调入的页数和每秒调出的页数。
如果该值经常为非零值,说明可能存在内存瓶颈。
偶尔出现的非零值不用在意因为页面调度是虚拟内存的主要原理。
# vmstat 2 10kthr memory page faults cpu----- ----------- ------------------------ ------------ -----------r b avm fre re pi po fr sr cy in sy cs us sy id wa1 3 113726 124 0 14 6 151 600 0 521 5533 816 23 13 7 570 3 113643 346 0 2 14 208 690 0 585 2201 866 16 9 2 730 3 113659 135 0 2 2 108 323 0 516 1563 797 25 7 2 660 2 113661 122 0 3 2 120 375 0 527 1622 871 13 7 2 790 3 113662 128 0 10 3 134 432 0 644 1434 948 22 7 4 671 5 113858 238 0 35 1 146 422 0 599 5103 903 40 16 0 440 3 113969 127 0 5 10 153 529 0 565 2006 823 19 8 3 700 3 113983 125 0 33 5 153 424 0 559 2165 921 25 8 4 630 3 113682 121 0 20 9 154 470 0 608 1569 1007 15 8 0 770 4 113701 124 0 3 29 228 635 0 674 1730 1086 18 9 0 73注意到输出列队里的高输入输出等待,也注意到阻塞队列里线程的数量。
AIX topas命令中的Memory项% Comp% Noncomp% Client如何理解和分析
AIX内存使用情况(windows 尽量少的用内存aix尽量多的用内存)svmon -Gsize inuse free pin virtualmemory 4046848 3758845 288003 935436 1816226pg space 2097152 4651work pers clntpin 935174 0 262in use 1815740 0 1943105用vmstat 1 11111查看内存瓶颈。
ps aux 显示内存使用svmon -G 查看内存泄露谢提供vmstat -v。
从上面显示看来,我想应该是这样:1、numperm、numclient都是perm或client相对lruable的比值。
内存只有部分是lruable的。
2、当只用jfs或者jfs2用量不大时,client基本上是小于perm,因为jfs cache类型算perm不算client,这部分往往在非计算内存中是最大的。
client只是nfs、cdrfs所用,这部分不算file page,也不算noncomputational,因为没有本地硬盘数据对应,但这部分内存可以被steal,被steal时也不需要占用paging space,因为也只是cache而已,noncomputational从文档用语的理解看来,我的理解是只包含本机硬盘有对应数据的内容,对于远程有的(NFS、CDRFS)的。
而一般来说,NFS和CDRFS的访问量远远比不上本地JFS的访问量,其cache占用也就很少。
3、如果JFS2用量很大,client可能超过noncomp比较多,因为JFS2 CACHE算client不算perm,而noncomp一般来说就是perm。
其实我觉得造成疑惑的应当是IBM对noncomp在实践中的定义不清,到底是内存只有comp与noncomp组成,还是不是?按理说应当是所有的noncomp+comp=lruable,但如果发生numclient>numperm,而系统性能检查命令把perm当作noncomp,这就有偷换概念的嫌疑:某些cache性质的不算noncomp,而显然这些也不能算comp。
AIX存储管理LVM中VGDA分析
AIX存储管理LVM中VGDA分析把PV加入VG后才可以使用,对于同一个操作系统,一个PV只能属于一个VG,一个VG根据其类型不同可能用有最多32-1024个PV。
VG中包含那些PV都写在VG的一个区域中,这个区域就是VGDA,VGDA中记录了很多VG的重要信息,包括VG中包含的所有PV的PV ID。
由于VGDA内的信息非常重要,因此VGDA被保存了多份。
如果VG中只有一块磁盘,则在此磁盘上存在两份VGDA;如果VG中有两块磁盘,则第一块磁盘有两份VGDA,第二块磁盘有一份。
如果VG 中包含三块或更多的磁盘,则每块磁盘上都有一个VGDA的拷贝。
完好的VGDA数量与VG中的总磁盘数之比被称为Quorum,如果Quprum 小于50%,此VG将不能被继续访问(如果已经被激活,则会自动关闭),这样做是为了防止数据被进一步破坏,由于在每块磁盘上都至少有一份VGDA,所以在一个新小型机上,只要给出未知的 VG中的一块磁盘,就可以正确识别出全部的VG信息,并注册到新小型机上,这个过程叫做import。
命令是:#import vg -y vg_name hdisk。
其中vg_name是你希望的VG名,hdiskx是此VG中的任一磁盘,由于在执行importvg命令的时候,可以自定义 VG名,因此系统中并没有更改名称的命令。
如果你想更改VG的名称,则需要先执行exportvg,把此VG在系统中的定义删掉,在用新名字importvg进来。
反之,如果想把某个VG信息从一台小型机删除,则需要执行exportvg vg_name,此操作并没有对磁盘做任何操作,磁盘的数据依然存在,只是将此VG在小型机系统中的定义给删除了,任何时候,你还可以再重新import回来。
在执行imortvg的时候,操作系统可以从指定磁盘上读到VG中所有磁盘(PV)的定义,如果操作系统发现此VG中一些磁盘没有被系统识别到,哪么系统将重新计算Quorum,如果大于50%,则依然可以执行imortvg,但会有警告信息。
AIX_存储管理概念_AIX存储方面不可多得好资料
AIX 存储管理概念(一)―――Aix系统管理员实例LVM 使用的基本概念包括物理卷、卷组、物理分区、逻辑卷、逻辑分区、文件系统和原始设备。
下面介绍它们的一些特征:∙每个单独的磁盘驱动器是一个命名的物理卷 (PV),并具有诸如hdisk0 或 hdisk1 等名称。
∙一个或多个 PV 可以构成一个卷组 (VG)。
一个物理卷最多只能属于一个 VG。
∙不能将某个 PV 的一部分分配到一个 VG。
一个物理卷整体地分配到某个卷组。
∙即使物理卷属于不同的类型,例如 SCSI 或 SSA,也可以将它们分配到同一个卷组。
∙物理卷中的存储空间划分为物理分区 (PP)。
在属于同一个 VG 的所有磁盘上,物理分区的大小完全相同。
∙在每个卷组中,可以定义一个或多个逻辑卷 (LV)。
从用户的角度看,逻辑卷上存储的数据似乎是连续的,但是可以分散在同一个卷组中的不同物理卷上。
∙逻辑卷由一个或多个逻辑分区 (LP) 组成。
每个逻辑分区至少有一个对应的物理分区。
一个逻辑分区和一个物理分区始终具有相同的大小。
最多可以将数据的三个副本定位在不同的物理分区上。
通常,为了实现冗余,将存储相同数据的物理分区定位在不同的物理磁盘上。
∙逻辑卷中的数据可以按有组织的方式进行存储,并具有位于有目录中的文件的形式。
这种结构化和层次性的组织形式称为文件系统。
∙还可以将逻辑卷中的数据视为一个连续的字节串。
此类逻辑卷称为原始逻辑卷。
使用该数据以正确地访问和解释它是应用程序的责任。
∙卷组描述符区域 (VGDA) 是磁盘上的一个区域,其中包含有关该物理卷所在的卷组的信息。
它还包括有关属于该卷组的所有物理和逻辑卷的属性和状态的信息。
VGDA 中的信息由 LVM 命令使用和更新。
每个物理卷至少有一个 VGDA。
属于同一个卷组的所有磁盘的 VGDA 中的信息必须完全相同。
VGDA 的内部体系结构及其在磁盘上的位置取决于卷组的类型(原始、大容量或可扩展)。
∙卷组状态区域 (VGSA) 用于描述卷组中所有物理卷中的所有物理分区的状态。
AIX虚拟内存管理机制和监控工具lpy-AIX课件
Paging activity
• Used mainly for working storage pages, there are some rare exceptions • Pages can be stolen and their contents are copied to paging space on a page by page basis • If the page is referenced, a page fault occurs and the page is copied back into memory from paging space • The page can be allocated just in real memory, just on paging space OR both • These details are handled by the XPT • Applications have no direct control over paging
• Every system needs some file system cache • Applications that access file systems will fill available memory with cached files • This is all normal and expected
• A single segment references 256MB of address space
Segment Characteristics
• Addresses have a segment, page and page offset • Typical Address: • • • • All pages in a segment will be the same size Remaining digits are the effective segment id (ESID) – 1 hex digit for 32 bit applications 9 hex digits for 64 bit applications
AIX中调整VMM
2.
AIX中内存是如何使用和替换的。
在AIX中所使用的文件系统是日志文件系统, 这是一种缓存(cached)文件系统,即任何文件一旦被读入内存后就会一直留在内存中。cached 文件系统对那些一旦读入后,会被反复使用的文件数据非常有效。 因为当文件中的内容再次被使用时,直接从内存就可得到它们,无需到硬盘上去查找。 大大的提高了读的性能。
系统中缺省的情况下,Maxperm 是软限制(soft limit)。 也就是,系统会保留 20% 的内存用于文件页面。 只要有空闲内存,文件页面就可以无限制的使用它。
这一缺省设置适用于大多数情况。 但当出现以下两种情况时就不再适用了:
1. 大量的读写文件操作,而读入的数据只使用一次 。
2.运行的程序需要大量的工作内存。
AIX中调整VMM
1.
对DB2数据库(包括INFORMIX)系统来说,在很多情况下,数据库自己进行文件的缓存,没有必要在操作系统一级上再进行文件缓存。这就有必要限制操作系统用于文件缓存的内存数量,从而使DB2(INFORMIX)数据库系统能够使用更多的物理内存。这个功能可以通过设置AIX的VMM(虚拟内存管理器)的参数进行。
由于maxperm 的限制不是严格的限制(hard limit),在大多数的系统中将其调小,不会引起其他性能问题。
关于AIX上VMO调整参数及Memory性能评估
型值如下:
maxclient% = 8
maxperm% = 12
minperm% = 5
如何更改这三个参数呢, 在AIX5.3上,可以使用 vmo 命令,此命令设置或显示所有虚拟内存管理器调整参数
的当前值或下一个引导值。还可以用此命令进行永久性更改,或将更改推迟到下一次重新引导之后生效。此命令
把大部份的内存作为计算型内存(%Comp)来使用,这部份内存量主要为ORACLE SGA和PGA所用,其中ORACLE SGA 为
pinned memory.
根据系统内存大小,设定系统可以pin住的最大值:
maxpin% = 80 --此值可以升高
v_pinshm = 1 --允许pin住内存
以及交换情况:
MEMORY
Real,MB 16032
% Comp 83.2
% Noncomp 9.9
% Client 9.9
PAGING SPACE
Size,MB 16384
% Used 3.3
% Free 96.6
在一个使用裸设备的系统中,文件型内存,即上面的%Noncomp,%Client,只需要使用整个系统很少的内存;而
nokilluid = 0
npskill = 49152
npsrpgmax = 393216
npsrpgmin = 294912
npsscrubmax = 393216
这三个参数,可以根据内存总量大小,进行适度调节。计算型内存与文件型内存,在实际的应用中,需要遵循
以下一些原则(前3条是参考别人的):
1.使用的文件型内存百分比 + 使用的计算型内存百分比 < 100%
优化AIX7内存性能第一部分内存概述和内存参数的调优(精)
优化AIX 7 内存性能第 1 部分内存概述和内存参数的调优简介作为系统管理员,您应该已经对内存的基本知识非常熟悉了,如物理内存和虚拟内存之间的区别。
您可能还不很清楚 AIX® 7 中的虚拟内存管理器(VMM是如何工作的,以及它与性能调优之间的关系如何。
在 AIX 7 中,还有必要考虑虚拟内存的影响以及在工作负载分区(WPAR中如何使用和应用它。
本文将介绍一些可以用来优化系统的监视工具,概述一些比较重要的 AIX 7 内存管理功能,包括虚拟内存管理器是如何工作的以及动态可变的页面大小的影响。
通过将这些增强功能的实现应用于系统环境,可以在系统中优化内存性能。
尽管您可能会发现,与其他子系统相比,内存的调优更为困难,但是收到的效果往往更加显著。
根据所运行的系统的类型,可能还有一些应该在系统中采用的特定的调优建议。
为了帮助说明这些内容,我将使用一个特定的示例并讨论设置这些参数的一些最佳实践。
在某些情况下,动态地调整一两个参数可能会使系统的总体性能产生显著的变化。
无论要对哪个子系统进行调优,有一个方面是相同的,即始终应该将系统调优看作一个正在进行的过程。
开始对系统进行监视的最佳时间是在首次将系统应用到生产环境中并正常运行时(而不是等到用户抱怨系统性能非常糟糕的时候。
必须在系统正常运行的时候建立系统运行状态的基准,这样在系统可能不正常时才能确认是否真的有问题。
另外,应该一次仅进行一项更改,应该在更改之后尽快捕捉并分析数据,以便判断更改的影响(如果有影响的话。
内存概述本节概述与 AIX 7 有关的内存知识。
我们将介绍 AIX 7 如何使用虚拟内存来寻址比系统物理内存更大的内存。
还将解释 VMM 的工作方式以及它如何处理各种请求。
任何有关内存和 AIX 7 的讨论都必须先介绍 VMM。
有时候,令 AIX 新手感到吃惊的是 VMM 处理系统的所有内存请求,而不仅仅是虚拟内存本身。
在访问 RAM 时,VMM 需要分配空间,即使是在系统中有足够的物理内存的情况下。
aix虚拟内存管理器(参考模板)
虚拟内存管理器(VMM)性能概述虚拟内存管理器(VMM)性能概述虚拟地址空间划分成段。
每段的大小是 256 MB,它是虚拟内存地址空间中一个邻接的部分,数据对象可映射到该空间。
进程对数据的寻址能力按段(或对象)的级别进行管理,所以段既可以在进程间共享,也可以进行专门维护。
例如,进程可共享代码段但拥有独立和专用的数据段。
实际内存管理虚拟内存段划分成固定大小的单元叫做页。
缺省页面大小是 4096 字节。
某些系统也支持大页面,通常只能通过系统调用 shmat 访问。
段中的每页在需要之前可位于实际内存(RAM)中,或存储在磁盘上。
同样,实际内存也可以划分成 4096 字节的页面帧。
VMM 的角色是管理分配实际内存页面帧并且解析程序对虚拟内存页面的引用,这些页面当前不在实际内存中或还不存在(例如,当进程第一次引用其数据段的某一页时)。
因为在任何给定时刻使用的虚拟内存数量可能比实际内存大,所以 VMM 必须将余量存储在磁盘上。
从性能的观点来看,VMM 有两个稍微对立的目标:·最小化使用虚拟内存的总处理器时间和磁盘带宽代价·最小化缺页故障的响应时间代价在跟踪这些目标时,VMM 维护一个页面帧的空闲列表,它可用于补偿缺页故障。
VMM 使用了一个页面替换算法来确定当前处于内存中的哪些虚拟内存页要将它们的页面帧重新指定到空闲列表中。
页面替换算法使用了几个机制:·虚拟内存段分成持久段或工作段。
·虚拟内存段分成包含计算内存或文件内存。
·跟踪在访问时引起缺页故障的虚拟内存页。
·缺页故障分成新页故障或重新调页故障。
·在每个虚拟内存段中维护一个重新调页故障率的统计信息。
·用户可调阈值影响页面替换算法的结果。
以下各节较详细地描述了空闲列表和页面替换机制。
空闲列表VMM 维护一个空闲页面帧的逻辑列表,它用于解决缺页故障。
在绝大多数环境中,VMM 偶尔必须通过重新指定由运行进程占有的一些页面帧来添加到空闲列表中。
针对多种类型应用的AIX系统内存调优实践
针对多种应用类型的系统内存调优实践1.VMM概述AIX操作系统的VMM,即虚拟内存管理器是一种基于分页的虚拟内存管理器,分页既可以位于内存中,也可以位于磁盘中。
与Windows不同的是,AIX VMM具有缓存文件的特点,将文件缓存为内存中的分页,提高系统性能。
由于文件缓存的特点,AIX的内存分类大致如下:计算性分页、非计算性分页首先看一个例子:这是一台服务器的内存使用情况,可以看出内存容量8G,计算页内存占用39.9%,非计算性分页为43.3。
所有的工作存储分页都是计算性的。
不会将工作存储分页标记为非计算性的。
永久存储分页既可以是计算性的,也可以是非计算性的。
这取决于使用这些分页是否包含某个进程的可执行文本。
2.分页替换AIX的一个守护进程通过一定的方式扫描内存,找出要回收的内存分页。
对于系统调优的原则是满足计算内存的同时将尽量多的内存作为文件缓存,而且保证分页替换的操作对系统负荷保持在低水平。
3.Domino类型vmo参数1)确定应用程序内存使用特性:32位的Domino 系统有4G内存限制,其中用于应用的共享内存不超过1.9G。
另外对于公文系统,Workflow还会占用一定内存。
从vmstat参数可以看出,公文系统的计算页内存在6.5G左右。
2)Minperm%, maxperm% & maxclient%Maxperm值代表了系统用于jfs文件系统的缓存,maxclient代表了系统用于jfs2或nfs的缓存。
在默认情况下,maxperm是硬限制,maxclient是软限制。
对于公文此类Domino系统,使用的是文件型数据库,是一种I/O密集型系统。
是否存在足够的缓存对于应用速度具有很大的影响。
公文主机内存为28G,固定的计算页内存约为6.5G。
由此初步推算出可用于缓存的内存约为75%。
可以设定maxperm%=maxclient%=70,充分利用内存。
以下是高峰时公文的vmstat状态:# vmstat 1发现sr列(分页替换算法扫描次数)很高,而且fr/sr较低。
AIX 5L 上的共享库内存占用
AIX 5L 上的共享库内存占用George Cross (george.cross@), 高级软件开发人员, Business Objects Americas简介:了解IBM® AIX® 上的共享库机制和内存占用情况。
本文对于开发人员编写服务器代码或管理员管理生产 AIX 系统来说非常重要。
本文为开发人员和管理员提供了分析 AIX 上的服务器进程的内存需求所需的命令、技巧和知识。
本文还有助于开发人员和管理员避免出现使用 ps 或 topas 等其他标准运行时分析工具时无法识别的资源短缺。
本文是面向 AIX 系统管理员或本机应用程序开发人员。
引言本文阐述 32 位 AIX 5L™ (5.3) 上共享库占用内存的方式,并演示下列命令:∙ps∙svmon∙slibclean∙procldd∙procmap∙genkld∙genld$ bc2^324294967296obase=162^32100000000这是 4GB 的范围。
这表示在系统中运行的程序能够访问 0 到 2^32 – 1 范围内的任何函数或数据地址。
$ bc2^32 - 1FFFFFFFFobase=102^32 - 14294967295现在,如您所知,任何操作系统都可能同时运行数百个程序。
即使其中每个系统都能访问 4GB 的内存范围,这并不表示它们各自拥有 4GB 的物理内存分配。
这是不切实际的。
实际上,操作系统在适量物理内存和文件系统中被指定为交换(或分页)空间的区域之间实现了非常复杂的代码和数据交换方案。
而且,虽然每个进程能够访问 4GB 的内存空间,但其中大部分空间都不会被使用。
因此,操作系统仅为每个特定进程加载或交换所需数量的代码和数据。
图 1. 虚拟内存的概念图该机制通常称为虚拟内存和虚拟地址空间。
在可执行文件运行时,操作系统的虚拟内存管理器查看文件包含的代码和数据,并决定将其中哪些部分加载到内存或交换空间中,或从文件系统引用。
aix nmon 内存指标
aix nmon 内存指标
AIX操作系统中的nmon工具是一个强大的性能监控工具,它可以提供关于系统资源使用情况的详细视图,包括内存使用情况。
nmon监控的内存指标主要有以下几个方面:
1. 物理内存使用率:这是已分配给系统的物理内存的使用情况,可以显示系统当前内存使用的百分比。
通过观察物理内存使用率,可以了解系统是否内存充足或者是否存在内存瓶颈。
2. 虚拟内存使用情况:虚拟内存是操作系统的一种内存管理机制,它通过将部分硬盘空间用作内存来扩展物理内存。
nmon可以监控已用虚拟内存和可用虚拟内存的大小,从而了解系统的虚拟内存使用状况。
3. 内存交换活动:nmon还可以监控系统的内存交换活动,包括交换进和交换出的次数以及交换的页数。
通过监控内存交换活动,可以了解系统是否频繁地进行内存交换,这可能表明系统内存不足或者存在性能问题。
通过以上指标,管理员可以更好地了解AIX操作系统的内存使用状况,从而进行相应的优化或调整,以保证系统的性能和稳定性。
AIX虚拟内存管理机制
* 计算型分页(Computational pages)
* 非计算型分页(Non-computational pages)
首先,所有的工作存储分页都是计算型分页,也就是说,Oracle的 PGA/SGA等都是属于计算型分页的。而永久存储分页,则根据缓存的文件的类型,如果是可执行文件,则对应的分页是计算型的,如果是数据文件,则是非计算型的,同一个文件对应的页面,要么全部是计算型,要么全部是非计算型的。显然的,为了提供Oracle等应用的性能,假如需要淘汰页面,优先应当交换非计算型页面。
* 当非计算性分页的数目大于或者等于 maxperm 的时候,AIX 分页替换守护进程严格地选择非计算性分页进行操作。
* 当非计算性分页的数目小于或者等于 minperm 的时候,AIX 分页替换守护进程将选择计算性分页和非计算性分页进行操作。在这种情况下,AIX 将扫描两类分页,并且回收近来较少使用的分页。
可以通过设置一些内核参数,来影响AIX对于页面的淘汰算法。这些参数都可以通过vmo命令进行调节(AIX5.2 TL6版本以上)。
minperm%(minperm)和maxperm%(maxperm)是最基本的两个参数,分别表示用于缓存非计算型页面的最小和最大内存比例(页数),但maxperm不是严格限制参数,在系统还有空闲内存的时候,非计算型内存的使用是可以突破maxperm的设置的。另外有个参数strict_maxperm可以指定是否严格限制(默认0表示不是严格限制),但是最好不要使用严格限制,在我们的测试中,可能导致os挂起。minperm和maxperm主要是影响淘汰算法:
AIX将所有的内存页面分成两大类型:
* 工作存储分页(Working storage pages)
IBM-AIX-系统性能检测
进程,线程:#vmstat要显示2 秒时间间隔的 5 个摘要,请输入:vmstat 2 5Kthr:r:当前在队列中等待执行的线程数。
b: 当前队列中处于等待状态的线程。
(i/o引起)memory:avm: active memory,等于当前使用的物理内存和使用的交换区的总数减去作为文件系统缓存的物理内存,单位为4KB,即一个内存页。
fre:空闲的物理内存,单位为4KB。
page:re: pi/po,数值长期趋于1,并且pi,po都很大,说明系统有可能有抖动(thrash)的现象,内存可能严重不足。
pi: 在vmstat两次检查间隔期间,系统将磁盘交换区读回物理内存页的数量.通常是内存不够的表现.po: 在vmstat两次检查间隔期间,系统将物理内存页交换到磁盘的数量。
fr: 间隔期间内,有多少不使用的物理内存被释放,也可能被交换到磁盘sr:间隔时间内,由于有内存使用申请,而物理内存不足,进行内存页搜索的页数。
cy: 进行内存搜索,清理消耗的时钟周期。
faults:in:中断次数.sy:间隔期间内,系统调用次数.cs:上下文切换.cup:us: 系统中用户操作所占CPU时间百分比。
sy: 系统中系统调用所占CPU时间百分比。
id:系统中CPU空闲时间百分比。
wa:系统中等待磁盘IO所占时间百分比。
(此时CPU闲置)监视系统重要活动#topas如果topas 命令调用时没有标志,则运行时正如用以下命令行来调用:topas -d20 —i2 -n20 —p20 -w20 -c20—d指定要受监视的磁盘数目。
-i以秒为单位设置监视时间间隔.缺省值为2 秒。
—n指定要受监视的热网络接口的数目.-p指定要受监视的热进程数目。
—w指定要受监视的热工作负载管理(WLM)类的数目.-c指定要受监视的热CPU 的数目。
缺省输出如下所示,包含两个固定部分和一个可变部分。
显示器左边的最上方两行显示了topas 命令运行所在的系统的名称、上次查看的日期和时间以及监视时间间隔。
AIX-动态CPU内存调整手册
AIX-动态CPU内存调整手册动态CPU内存调整步骤通过IE登录HMC管理界面,用户名hscroot/s*****9(或a**123) 点击系统管理->服务器->选择需求表中的服务器:(注:超时时间(分钟)建议设置为内存修改量(G)的两倍)按照需求列表修改顺序动态修改CPU内存CPU修改方法:在主机前的方框中点勾,点击主机右侧的双箭头,点选动态逻辑分区->处理器->添加或除去,点击添加或除去后,如下图所示,已分配的处理器中,将数值修改为修改后CPU的值,点击确定。
若CPU调整时效为永久在主机前的方框中点勾,点击主机右侧的双箭头,点选配置->管理概要文件->点击概要文件(例如:主机名_profile),选择处理器,将期望处理器单元的数量修改为修改后CPU,并按照如下标准调整最大处理器单元数量:“cpu_max”若lpar为某系统的主备机,CPU最大值建议为主备lparCPU需求总和;其余情况为为期望值2倍。
点击确定。
内存修改方法:在主机前的方框中点勾,点击主机右侧的双箭头,点选动态逻辑分区->内存->添加或除去,点击添加或除去后,如下图所示,已分配的内存量中,将数值修改为修改后内存的值,在超时(分钟)中,将数值修改为表中内存超时时间,点击确定。
若内存调整时效为永久在主机前的方框中点勾,点击主机右侧的双箭头,点选配置->管理概要文件->点击概要文件(例如:主机名_profile),选择内存,将期望内存的数量修改为修改后内存,点击确定。
并按照如下标准调整最大内存数量:“mem_max”若lpar为某系统的主备机,内存最大值建议为主备lpar内存需求总和;其余情况为desire值2倍(desire<16G)或1.5倍(desire>=16G)。
点击确定。
登录主机按照如下标准调整PagingSpace大小。
内存小于等于4G的,PagingSpace调整为内存2倍,内存大于4G,PagingSpace 调整为内存相同大小修改后检查:登录LPAR,输入vmstat查看cpu内存是否符合预期。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟内存管理器(VMM)性能概述虚拟内存管理器(VMM)性能概述虚拟地址空间划分成段。
每段的大小是 256 MB,它是虚拟内存地址空间中一个邻接的部分,数据对象可映射到该空间。
进程对数据的寻址能力按段(或对象)的级别进行管理,所以段既可以在进程间共享,也可以进行专门维护。
例如,进程可共享代码段但拥有独立和专用的数据段。
实际内存管理虚拟内存段划分成固定大小的单元叫做页。
缺省页面大小是 4096 字节。
某些系统也支持大页面,通常只能通过系统调用 shmat 访问。
段中的每页在需要之前可位于实际内存(RAM)中,或存储在磁盘上。
同样,实际内存也可以划分成 4096 字节的页面帧。
VMM 的角色是管理分配实际内存页面帧并且解析程序对虚拟内存页面的引用,这些页面当前不在实际内存中或还不存在(例如,当进程第一次引用其数据段的某一页时)。
因为在任何给定时刻使用的虚拟内存数量可能比实际内存大,所以 VMM 必须将余量存储在磁盘上。
从性能的观点来看,VMM 有两个稍微对立的目标:·最小化使用虚拟内存的总处理器时间和磁盘带宽代价·最小化缺页故障的响应时间代价在跟踪这些目标时,VMM 维护一个页面帧的空闲列表,它可用于补偿缺页故障。
VMM 使用了一个页面替换算法来确定当前处于内存中的哪些虚拟内存页要将它们的页面帧重新指定到空闲列表中。
页面替换算法使用了几个机制:·虚拟内存段分成持久段或工作段。
·虚拟内存段分成包含计算内存或文件内存。
·跟踪在访问时引起缺页故障的虚拟内存页。
·缺页故障分成新页故障或重新调页故障。
·在每个虚拟内存段中维护一个重新调页故障率的统计信息。
·用户可调阈值影响页面替换算法的结果。
以下各节较详细地描述了空闲列表和页面替换机制。
空闲列表VMM 维护一个空闲页面帧的逻辑列表,它用于解决缺页故障。
在绝大多数环境中,VMM 偶尔必须通过重新指定由运行进程占有的一些页面帧来添加到空闲列表中。
需要重新指定页面帧的虚拟内存页由 VMM 的页面替换算法进行选择。
VMM 阈值决定了重新指定的帧的数量。
持久段与工作段对比持久段的页面在磁盘上的存储位置是永久性的。
包含数据或可执行程序的文件映射到持久段中。
因为持久段的每一页都有永久的磁盘存储位置,所以当页面被更改且不能再留在实际内存中时,VMM 将该页写回到那个位置。
当页面被选择放置到空闲列表中时,如果它没有更改过则不需要 I/O 操作。
如果后来再次引用到该页,那么就从它的永久磁盘存储位置读入一个新副本。
工作段是暂时的,它们仅在由进程使用时才存在,且没有永久的磁盘存储位置。
进程堆栈和数据区域映射到工作段,这一点和内核文本段、内核扩展文本段、共享库文本段和数据段相同。
当工作段的页面不能保存在实际内存中时,它们也必须占有磁盘存储位置。
磁盘调页空间就是用于这个目的。
下列插图显示某些类型的段和它们的页面在磁盘上的位置之间的关系。
它还显示了页面在实际内存中时实际(专有)的位置。
图形持久和工作存储段. 该插图显示某些类型的段和它们的页面在磁盘上的位置之间的关系。
它还显示了页面在实际内存中时实际(专有)的位置。
工作段是暂时的,这意味着它们仅在由进程使用时才存在并且没有永久的磁盘存储位置。
进程堆栈和数据区域映射到工作段,这一点和内核文本段、内核扩展文本段、共享库文本段和数据段相同。
当工作段的页面不能保存在实际内存中时,它们也必须占有磁盘存储位置。
磁盘调页空间就是用于这个目的。
持久段类型可进一步划分。
客户段用于映射远程文件(例如,正通过 NFS 访问的文件),包括远程可执行程序。
客户段的页面通过网络保存和恢复到它们的永久文件位置,而不是在本地磁盘调页空间。
日志和延迟段是必须自动更新的持久段。
如果选择从实际内存中除去(调出页)的页面来自于某个日志段或延迟段,那么必须将它写到磁盘调页空间中,除非它处于一种允许它提交(写到它的永久文件位置)的状态。
计算内存对比文件内存计算内存也称为计算页面,它由属于工作存储器段或程序文本(可执行文件)段中的页面组成。
文件内存(或文件页面)由其余页面组成。
这些通常是来自持久存储器中永久数据文件的页面。
页面替换当空闲列表中可用的实际内存帧数量减少时就会调用一个页面替换器(stealer)。
页面替换器在整个页面帧表(PFT)中移动,寻找可替换(steal)的页面。
PFT 中包含一些标志用来表示哪些页已经被引用,哪些页已经被修改。
如果页面替换器遇到一个已经引用的页,它不会替换这个页而是为该页重新设置引用标志。
在下一次钟针(页面替换器)经过该页且引用位仍未启用时,它便被替换。
初次通过时未被引用的页面会立即得到替换。
修改标志表示该页进入内存后上面的数据已经改变。
当页面要被替换时,如果设置了修改标志,那么在替换该页之前进行页面调出调用。
属于工作段的页面写入调页空间;而持久段中的页面写到磁盘上。
图形页面替换示例. 此插图从三个表中摘选而成。
第一个表是具有四列的页面帧表,它包含实际地址、段类型、引用标志和修改标志。
第二个表叫做空闲列表,它包含所有空闲页的地址。
最后一个表代表除去所有空闲地址后最终得到的页面帧表。
除了页面替换以外,算法还可通过使用一个包含最近缺页故障标识的历史缓冲区来跟踪新页故障(第一次引用)和重新调页故障(引用已经调出的页)。
然后它可以尽量平衡文件(持久数据)页面的调出和计算(工作存储器或程序文本)页面的调出。
当进程退出时,它的工作存储器立刻释放并且它的关联内存帧也放回到空闲列表中。
然而由该进程打开的任何文件可保留在内存中。
如果线程在单处理器上运行,那么页面替换可直接在线程作用域中进行。
在多处理器系统中,页面替换通过内核进程 lrud 进行,在达到阈值 minfree 时,该进程被分派到 CPU 中。
从 AIX 4.3.3 开始,内核进程 lrud 是多线程的,每个存储池中一个线程。
根据 CPU 数量和 RAM 大小将实际内存划分成平均大小的存储池。
系统中存储池的数量可通过运行命令 vmtune -A 来确定。
在 AIX 4.3.3 和后续版本中,使用命令 vmtune -m <number of memory pools> 更改存储池数量,这将在系统引导时进行配置。
数值 minfree 和 maxfree 在命令 vmtune 的输出中,它们是每个存储池的 minfree 和 maxfree 的总和。
重新调页缺页故障要么是新页故障要么是重新调页故障。
如果没有最近引用页面的记录的话,会出现一个新页故障。
而出现重新调页故障是指一个知道其最近已经引用的页再次被引用,但由于该页在上次访问后已经被替换(可能写到磁盘上)而在内存中找不到它。
理想的页面替换策略通过总是替换那些不会再次引用的页面帧而完全减少重新调页故障(假设有足够的实际内存)。
因而重新调页故障数是页面替换算法有效性的一个相反评测标准,算法将频繁被重用的页面保存在内存中,从而降低了总体 I/O 需求并潜在地改善了系统性能。
为了分清一个缺页故障是新页故障还是重新调页故障,VMM 维护一个重新调页历史记录缓冲区,它包含N 个最近缺页故障的页面标识,其中 N 是内存可保留的帧数。
例如,512 MB 内存需要一个 128 KB 的重新调页历史记录缓冲区。
在页面调进时,如果它的标识可在重新调页历史记录缓冲区中找到,则将它计为一个重新调页。
VMM 还可以分别评估计算内存重新调页率和文件内存重新调页率,只需为每种类型的内存维护重新调页故障计数即可。
每次页面替换算法运行时都将重新调页率乘以 0.9,这样可比历史重新调页活动更有力地反映最近的重新调页活动。
VMM 阈值几个数字阈值定义了 VMM 的目标。
当超出这些阈值中的一个时,VMM 会采取适当的操作将内存状态恢复到限定范围内。
本节讨论的阈值可由系统管理员用命令 vmtune 进行更改。
空闲列表中页面帧的数量受下列参数控制:minfree空闲列表中可接受的实际内存页面帧的最小数量。
当空闲列表的大小低于这个数时,VMM 开始替换页面。
它将一直替换页面直到空闲列表的大小达到 maxfree。
maxfree通过 VMM 页面替换空闲列表可达到的最大大小。
当进程终止并释放它们的工作段页面或删除其页面在内存中的文件时,结果是空闲列表的大小可能会超过这个数。
VMM 试图保持空闲列表的大小大于或等于 minfree。
当缺页故障或系统需求导致空闲列表大小低于minfree 时,页面替换算法就开始运行。
由于几个原因,空闲列表的大小必须保持在某个级别之上(缺省值是 minfree)。
例如,操作系统的顺序预取算法每次需要几个帧用于每个正在进行顺序读取的进程。
而且 VMM 必须避免在操作系统自身内部产生死锁,如果没有足够的空间读取需要释放页面帧的页就可能出现这种情况。
下列阈值以百分数的形式表示。
它们表示由文件页面(非计算段的页面)占有的机器全部实际内存中的一部分。
minperm如果由文件页面占有的实际内存的百分比低于这个级别,则页面替换算法既替换文件页面也替换计算页面,而不管重新调页率。
maxperm如果由文件页面占有的实际内存的百分比高于这个级别,则页面替换算法仅替换文件页面。
maxclient如果由文件页面占有的实际内存的百分比高于这个级别,则页面替换算法仅替换客户机页面。
当由文件页面占有的实际内存的百分比处于 minperm 和 maxperm 之间时,VMM 通常只替换文件页面,但是如果文件页面的重新调页率高于计算页面的重新调页率的话,计算页面也被替换。
页面替换算法的主要意图是确保计算页面得到合理的待遇。
例如,对于可能会很快再次使用的程序文本页,顺序读取长的数据文件到内存中应该不会使它们丢失。
对阈值和重新调页率使用页面替换算法可确保合理地对待这两种类型的页面,但仍稍微偏向有利于计算页面的一方。
VMM 内存负载控制工具进程需要实际内存页面才可以运行。
当某进程引用磁盘上的虚拟内存页面时,由于该页要么已经调出要么从未读取过,所以必须调进所引用的页面,而且一般来说,由于必须调出一个或多个页面(如果被替换的页已经做过修改),从而引起 I/O 流量并延迟了进程的进度。
操作系统通过页面替换算法试图从那些最近不可能引用的页面中窃取实际内存。
一个成功的页面替换算法允许操作系统在内存中保持足够的进程是活动的,从而保持 CPU 的繁忙。
但是在内存竞争的某些级别上,没有较好的候选页面可调出到磁盘上,因为不久之后它们都会由一组活动的进程重用。
这种情况取决于下列因素:·系统中的内存总量·处理器数量·每个处理器随时间变化的内存需求·页面替换算法出现这种情况时,会出现持续的页面调进和调出。