免费注册 查看新帖 |

Chinaunix

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

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

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

论坛徽章:
0
2 [报告]
发表于 2003-05-30 16:57 |只看该作者

AIX操作系统Paging Space的管理机制

好文,up。\r\n问一下,系统实际使用的内存量怎么看?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-05-30 17:40 |只看该作者

AIX操作系统Paging Space的管理机制

EN!\r\n谢谢小龙的发言!\r\n精华!

论坛徽章:
0
4 [报告]
发表于 2003-06-03 13:07 |只看该作者

AIX操作系统Paging Space的管理机制

     \r\n好文章!\r\n支持!\r\n顶一下!

论坛徽章:
0
5 [报告]
发表于 2003-06-03 14:48 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP