Paging Space的管理机制
更新时间:2023-11-18 00:01:01 阅读量: 教育文库 文档下载
- paging推荐度:
- 相关推荐
Paging Space的管理机制
在AIX 4.3.2及以后版本中,操作系统提供了3种 Paging Space的管理机制: Deferred Page Space Allocation (DPSA) ? Late Page Space Allocation (LPSA) ? Early Page Space Allocation (EPSA)
?
(1) Deferred Page Space Allocation (DPSA)
在AIX4.3.2之后,DPSA是系统默认的Paging Space的管理机制。在这种机制下,系统不会为进程保留任何的 page 页面,直到系统确认确实需要将内存中的页面 page out 到Paging Space中,才会把Paging Space的页面分配给该进程。
DPSA是AIX 4.3.2及以后版本中所使用的默认机制,它通常适用于配有很大容量RAM 的系统,因为它可以减少很多Paging Space资源的浪费。 这也是为什么当前的系统看不到大量paging space分配的原因. (2) Late Page Space Allocation (LPSA)
在AIX 4.2.1之后, 4.3.2之前,操作系统默认使用 LPSA 机制。这种机制是指当进程启动后,系统并不在Paging Space中为该进程保留相应的页面。只有当该进程的实际内存页面被修改过后,才会在Paging Space中为这些被修改过的页面申请空间。其中” 内存页面被修改”的含义:例如通过bzero()函数修改分配的内存的时候,或者调用calloc(),或者内存被初始化某些值的时候, 系统会为这些working page在paging space中保留相应的页面.
这种机制在一定程度上减少了Paging Space的空间浪费,但是对系统也存在一定的风险。比如,当一些后起的进程用了几乎全部的Paging Space后,由于先起的进程并没有保留足够的Paging Space空间用于进程的page out操作,会导致该进程被杀掉。
(3) Early Page Space Allocation (EPSA)
在AIX系统中,当Paging Space的使用率达到一定百分比时,系统就无法将需要 page out的页面写到Paging Space中,这时候,该进程就很可能被杀掉。为了避免这种情况的发生,EPSA机制会保证当进程被启动时,在Paging Space中先申请一块页面空间,该空间大小与该进程所需要占用的实际内存的大小一致 (将环境变量 PSALLOC设为early,也就是“export PSALLOC=early”)。这样就保证当进程使 用malloc()调用的同时,在Paging Space中有相应的空间保留给该进程,从而保 证该进程的page out 操作。
这种机制虽然可以保证现有的进程安全,但由于很多被保留的页面空间并没有被用到,造成了非常大的空间浪费。同时,也需要Paging Space的大小比实际内存值要大很多。
EPSA在以前版本操作系统中使用比较多,主要的原因当时的系统物理内存比较少,一般都少于512M,在少内存的情况下EPSA会使系统进程的调度更加安全.
(4) 相关命令
?
查看当前系统采用的paging space的机制
# vmo -a |grep defps defps = 1
defps=1表示采用的是DPSA,如果defps=0表示采用的是LPSA.
?
修改paging space的机制,采用LPSA
# vmo -o defps=0
?
查看defps属性
当前值是1,缺省值是1,启动时的值是1, 取值范围是0-1,类型是动态可以修改的. # vmo -L defps
NAME CUR DEF BOOT MIN MAX UNIT TYPE DEPENDENCIES
--------------------------------------------------------------------------------
defps 1 1 1 0 1 boolean D
--------------------------------------------------------------------------------
?
vmo Tips
VMO Man page
-L [ Tunable ]
Lists the characteristics of one or all tunables, one per line, using the following format:
NAME CUR DEF BOOT MIN MAX UNIT TYPE DEPENDENCIES
-------------------------------------------------------------------------------- memory_frames 128K 128K 4KB pages S --------------------------------------------------------------------------------
maxfree 1088 1088 130 16 200K 4KB pages D minfree memory_frames
--------------------------------------------------------------------------------
minfree 960 960 122 8 200K 4KB pages D maxfree memory_frames
-------------------------------------------------------------------------------- ... where:
CUR = current value DEF = default value BOOT = reboot value MIN = minimal value MAX = maximum value UNIT = tunable unit of measure
TYPE = parameter type: D (for Dynamic), S (for Static), R for Reboot), B (for Bosboot), M (for Mount), I (for Incremental), C (for Connect), and d (for Deprecated)
DEPENDENCIES = list of dependent tunable parameters, one per line
Paging-space thresholds tuning
如果paging space少到一定的空间,操作系统将会通过先告警进程释放paging space,最后可能会kill进程.相关的两个参数npswarn和npskill: # vmo -a |grep npswarn npswarn = 249856 # vmo -h npswarn Help for tunable npswarn:
Specifies the number of free paging-space pages at which the operating system begins sending the SIGDANGER signal to processes. Default: MAX (512,4*npskill). 大于0小于系统paging space的数目. Increase the value if you experience processes being killed because of low paging space.
# vmo -a |grep npskill npskill = 62464 # vmo -h npskill Help for tunable npskill:
Specifies the number of free paging-space pages at which the operating system begins killing processes. Default: MAX (64,
number_of_paging_space_pages/128). 大于0小于系统paging space的数目.
Paging space garbage collection
AIX 5.3之后可以利用paging space garbage collection机制来free up paging space. 只作用于deferred page space allocation policy.
?
方法一: re-pagein 后的垃圾收集
The method of freeing a paging-space disk block after a page has been read back into memory from paging space is employed by default. 相关参数: npsrpgmin: 停止re-pagein垃圾收集的free paging space blocks数目 npsrpgmax: 开始re-pagein垃圾收集的free paging space blocks数目
?
方法二: scrubbing memory
Another method of paging space garbage collection is by scrubbing memory, which is implemented with the psgc kernel process. The psgc kernel process frees up paging space disk blocks for modified memory pages that have not yet been paged out again or for unmodified pages for which a paging space disk block exists. 相关的参数:
npsscrubmin 停止scrubbing内存的free paging space blocks数目 npsscrubmax: 开始scrubbing内存的free paging space blocks数目 # vmo -a |grep nps npskill = 62464 npsrpgmax = 499712 npsrpgmin = 374784 npsscrubmax = 499712 npsscrubmin = 374784 npswarn = 249856
Paging Space的创建原则
AIX中Paging Space大小确定的指导原则如下(理论上):
系统实际内存小于64MB, paging space= 2 * RAM ;
? 系统实际内存在 64MB to 256MB 之间, Page Space = RAM size + 16MB ;
? 系统实际内存大于 256MB , Page Space = 512 + ( RAM - 256 ) * 1.25 ; ? 当内存超过4GB时,则需要根据实际情况来定,一般可初始3GB, 然后观察paging space的使用情况,如果使用率超过70%, 则需要增加paging space 。
?
hdisk1 13.5 320.0 51.5 188.0 132.0 Steals 257 % Comp 97.7 cd0 0.0 0.0 0.0 0.0 0.0 PgspIn 131 % Noncomp 2.2 PgspOut 82 % Client 2.2 Name PID CPU% PgSp Owner PageIn 172
sqlplus 340060 53.5 3.1 oracle PageOut 88 PAGING SPACE java 204880 23.9 131.1 ebaogs Sios 360 Size,MB 24576 java 589952 15.3 285.7 oas10g % Used 1.1 dtgreet 82044 0.5 1.3 root NFS (calls/sec) % Free 99.9
启动多个exp进程:
Disk Busy% KBPS TPS KB-Read KB-Writ PAGING MEMORY hdisk1 0.0 24.0 1.5 0.0 24.0 Faults 1 Real,MB 4816 hdisk0 0.5 2.0 0.5 2.0 0.0 Steals 0 % Comp 97.7 cd0 0.0 0.0 0.0 0.0 0.0 PgspIn 0 % Noncomp 2.2 PgspOut 0 % Client 2.2 Name PID CPU% PgSp Owner PageIn 0
exp 180474 94.9 353.4 oracle PageOut 6 PAGING SPACE dtgreet 82044 0.5 1.3 root Sios 0 Size,MB 24576 java 589952 0.5 327.4 oas10g % Used 8.8 topas 827632 0.3 1.6 root NFS (calls/sec) % Free 92.2
关闭所有exp后:
Disk Busy% KBPS TPS KB-Read KB-Writ PAGING MEMORY hdisk1 5.0 24.0 1.5 0.0 24.0 Faults 0 Real,MB 4816 hdisk0 0.0 0.0 0.0 0.0 0.0 Steals 0 % Comp 75.5 cd0 0.0 0.0 0.0 0.0 0.0 PgspIn 0 % Noncomp 3.3 PgspOut 0 % Client 3.3 Name PID CPU% PgSp Owner PageIn 0
dtgreet 82044 0.5 1.3 root PageOut 6 PAGING SPACE endpoint 823368 0.4 1.2 root Sios 6 Size,MB 24576 java 589952 0.2 327.4 oas10g % Used 8.8 topas 655502 0.2 1.6 root NFS (calls/sec) % Free 92.2
关闭WEBLOGIC:
Disk Busy% KBPS TPS KB-Read KB-Writ PAGING MEMORY hdisk1 1.0 26.0 2.0 2.0 24.0 Faults 2 Real,MB 4816 hdisk0 1.0 4.0 1.0 4.0 0.0 Steals 0 % Comp 55.5 cd0 0.0 0.0 0.0 0.0 0.0 PgspIn 1 % Noncomp 3.3 PgspOut 0 % Client 3.3
Name PID CPU% PgSp Owner PageIn 1
endpoint 823368 0.3 1.2 root PageOut 5 PAGING SPACE java 589952 0.3 327.4 oas10g Sios 7 Size,MB 24576 topas 655514 0.2 1.6 root % Used 6.6 oracle 712870 0.1 3.8 oracle NFS (calls/sec) % Free 94.4
关闭OAS,只剩于Oracle时:
Disk Busy% KBPS TPS KB-Read KB-Writ PAGING MEMORY hdisk1 1.0 26.0 2.0 2.0 24.0 Faults 2 Real,MB 4816 hdisk0 1.0 4.0 1.0 4.0 0.0 Steals 0 % Comp 55.5 cd0 0.0 0.0 0.0 0.0 0.0 PgspIn 1 % Noncomp 3.3 PgspOut 0 % Client 3.3 Name PID CPU% PgSp Owner PageIn 1
endpoint 823368 0.3 1.2 root PageOut 5 PAGING SPACE java 589952 0.3 327.4 oas10g Sios 7 Size,MB 24576 topas 655514 0.2 1.6 root % Used 6.6 oracle 712870 0.1 3.8 oracle NFS (calls/sec) % Free 94.4
关闭Oracle和listener后(注意:listener不关闭,也会占用1.1%的SWAP, 25M):
Disk Busy% KBPS TPS KB-Read KB-Writ PAGING MEMORY hdisk1 0.0 0.0 0.0 0.0 0.0 Faults 0 Real,MB 4816 hdisk0 0.0 0.0 0.0 0.0 0.0 Steals 0 % Comp 27.7 cd0 0.0 0.0 0.0 0.0 0.0 PgspIn 0 % Noncomp 4.4 PgspOut 0 % Client 4.4 Name PID CPU% PgSp Owner PageIn 0
topas 716806 0.1 1.4 root PageOut 0 PAGING SPACE topas 794624 0.1 1.4 oas10g Sios 0 Size,MB 24576 xmgc 45078 0.0 0.1 root % Used 1.1 nfsd 335998 0.0 0.3 root NFS (calls/sec) % Free 99.9
总结:
1. AIX在为内存分配时, 当物理内存有剩余, 则申请未用内存;
2. 当物理内存不足时, 新进程申请时, 则需要将部分非活动内存pagesp到swap中, 并且新进程将使用腾出后的物理内存, 就是与老进程共享部分内存地址;
3. 当新进程结束后, 只释放该进程占用的物理内存和SWAP, 如果该进程没有耗用SWAP, 则会出现: 物理内存有空闲, 但SWAP没有减少.
4. 物理内存不足情况下, 新进程开始时, 所有应用程序的部分进程都会有部分物理内存被释放;
5. Paging Space的页面空间被使用后,将被保留给该内存页面,即使该页面已经被写回到内存中。
6. SWAP释放的条件: 结束占用SWAP的进程;线程/进程相关的内存被释放 -- free();
SWAP剩余值小于npsscrubmax或npsrpgmax. PHASE Oracle/oas都运行 关闭OAS后 再关闭Oracle后 启动Oracle和OAS和weblogic后 启动多个exp进程 关闭所有exp后 关闭WEBLOGIC 关闭OAS,只剩Oracle时 关闭Oracle和listener后 100% 100% 78.80% 58.80% 58.80% 32.10% MEMORY-4G PAGING SPACE -24G 100% 48.80% 41% 0.10% 8.80% 8.80% 6.60% 6.60% 0.10% 8.80% 7.70% 0.10% 注意: 被Page out出去的数据, 如果有进程需要再次reference的时候, 将page fault, 然后通过page in再次写入到内存.
ORACLE: 2G OAS:512M
WebLogic: 512M OS: 1G
主机物理内存: 4G SWAP:24G
正在阅读:
Paging Space的管理机制11-18
2018年煤矸石、页岩砖生产项目实施方案02-27
(下发稿)2011年7月(11&183;4次)考试计划安排和使用教材表201105041050408-12
婚姻法司法解释三第六条的理解与适用11-09
高危药品临床使用管理办法08-16
武汉理工大学 数据库系统原理总复习题(完整版含答案)12-04
重庆市垫江第九中学七年级思想品德下册 第五单元 守法护法 健康成长达标训练 湘教版11-09
建行电子银行业务试题06-01
烧烤乐作文600字07-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 机制
- Paging
- Space
- 管理
- 马克思基201102版本修
- 怎样炼成秘书公文写作高手(全套方案)
- 杰图市政管线协同软件简明操作手册(DOC)
- 2019年《书愤》与《临安春雨初霁》比较赏析1
- 新海高中录取名单
- R语言判别分析实验报告
- 《成本会计》习题及答案
- 《冬日看海人》教案- 中华语文网—中华语文教育第一门户
- 铁路货物运输组织习题1
- 融创-合生创展品牌研究报告
- People learn things better from those at their own level
- 广数系统常见故障维修手册
- 某教学楼方案
- 语法讲解(在职研究生)
- 中国海洋大学第四册蓝鸽1-6单元
- 河道护岸工程施工组织设计
- web复习
- 护理管理学 试题与答案 第八章 沟通与冲突
- 大连地产房地产开发手续详细流程图
- 不应该取消国企在能源行业的垄断地位