免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3945 | 回复: 2
打印 上一主题 下一主题

AIX操作系统Paging Space的管理机制 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-28 15:42 |只看该作者 |倒序浏览
AIX操作系统Paging Space的管理机制   \r\n \r\n      \r\n  我们知道在AIX操作系统中,Paging Space是一项很重要的设备,AIX kernel(内 核)需要利用 Paging Space 来管理虚拟内存。和内存页面一样,AIX的 Paging Space也是以4KB为单位,当实际内存数的空闲值低于一定数量以后,系统需要把 实际内存中的某些计算页面(Computation Page)写回到Paging Space中(page out),以便释放出实际内存页面用于其他程序。\r\n\r\n在AIX 4.3.2及以后版本中,操作系统提供了3种 Paging Space的管理机制。 分别为: \r\n\r\nEarly Page Space Allocation (EPSA) \r\nLate Page Space Allocation (LPSA) \r\nDeferred Page Space Allocation (DPSA) \r\nEarly Page Space Allocation \r\n\r\n在AIX系统中,当Paging Space的使用率达到一定百分比时,系统就无法将需要 page out的页面写到Paging Space中,这时候,该进程就很可能被杀掉。为了避免 这种情况的发生,EPSA机制会保证当进程被启动时,在Paging Space中先申请一 块页面空间,该空间大小与该进程所需要占用的实际内存的大小一致 (将环境变量 PSALLOC设为early,也就是“export PSALLOC=early”)。这样就保证当进程使 用malloc()调用的同时,在Paging Space中有相应的空间保留给该进程,从而保 证该进程的page out 操作。 \r\n\r\n这种机制虽然可以保证现有的进程安全,但由于很多被保留的页面空间并没有被用 到,造成了非常大的空间浪费。同时,也需要Paging Space的大小比实际内存值要 大很多。 \r\n\r\nLate Page Space Allocation \r\n\r\n在AIX 4.2.1之后, 4.3.2之前,操作系统默认使用 LPSA 机制。这种机制是指当进程 启动后,系统并不在Paging Space中为该进程保留相应的页面。只有当该进程的实 际内存页面被修改过后,才会在Paging Space中为这些被修改过的页面申请空间。 这种机制在一定程度上减少了Paging Space的空间浪费,但是对系统也存在一定的 风险。比如,当一些后起的进程用了几乎全部的Paging Space后,由于先起的进程 并没有保留足够的Paging Space空间用于进程的page out操作,会导致该进程被杀 掉。 \r\n\r\nDeferred Page Space Allocation \r\n\r\n在AIX4.3.2之后,DPSA是系统默认的Paging Space的管理机制。在这种机制下,系 统不会为进程保留任何的 page 页面,直到系统确认确实需要将内存中的页面 page out 到Paging Space中,才会把Paging Space的页面分配给该进程。这种机制不会 造成Paging Space的空间浪费,但和LPSA一样,这种机制也给系统带来了相同的 风险。\r\n\r\nDPSA是AIX 432及以后版本中所使用的默认机制,它通常适用于配有很大容量RAM 的系统,因为它可以减少很多Paging Space资源的浪费。 \r\n\r\n对于RAM容量不是很大(比如小于2GB)的系统,用户可以采用LPSA或EPSA机 制。用 “/usr/samples/kernel/vmtune -d 0” 命令可以停止使用DPSA,而使用LPSA。 用 “/usr/samples/kernel/vmtune -d 0” 命令加上“export PSALLOC=early”命令可以停止使用DPSA,而使用EPSA。 用 “/usr/samples/kernel/vmtune -d 1” 命令可以激活DPSA。 \r\n\r\nPaging Space的页面释放 \r\n\r\n在AIX操作系统中,当内存中的页面被page到了Paging Space中以后,那么这一块 Paging Space的页面空间将被保留给该内存页面,即使该页面已经被写回到内存 中。因此,用lsps命令看到的Paging Space的使用率可能并不能真实反映真正位于 Paging Space 中的页面数,因为有些页面可能已经写回到了内存中。 \r\n\r\n如果写回到内存中的页面是线程的工作存储页面(Working Storage),那么随着该线 程的退出或者是相关的内存被释放 -- free(),Paging Space中的相应页面块也才会 被释放。

论坛徽章:
0
2 [报告]
发表于 2008-08-28 23:33 |只看该作者
很眼熟,是不是E文翻译过来的 纯顶!

论坛徽章:
0
3 [报告]
发表于 2008-08-29 09:26 |只看该作者
呵呵,看到有人在问page space的问题,翻了一下手头的文档,顺便贴一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP