阅读权限20
最后登录2015-11-25
在线时间7 小时
积分290
注册时间2015-10-17
精华0
主题2
UID71860
帖子49
金币288
威望0
贡献0
技术0
活跃45
Kib
- 贡献
- 0
- 技术
- 0
- 活跃
- 45
- 在线时间
- 7 小时
|
AIX 分页由于是操作系统底层的一部分工作,或许大家认为这其中的过程很复杂很神秘。但当我们真正了解了其内部工作原理后,也许大家就不再觉得这项技术很复杂了,恐惧来源于未知。
AIX 分页是AIX 所完成的任务中非常必要的一部分,因为AIX 内核与VMM 及其对分页的请求是密不可分的连动过程。下面我们来看一下分页的工作原理:
内核一次仅加载部分页面到实际内存中,当CPU 需要另一个页面时,它会到内存中查找,如果无法在内存中找到这个页面,则出现一次缺页,然后向内核发出信号从磁盘中加载更多的页面到内存。
分页工作的一个特点是,分页空间不需要非常大,因为数据总是在分页空间和内存之间不断地交换。早期的UNIX 系统中,将分页预先分配到磁盘,无论使用还是不使用它们,这造成了有可能有的所分配的磁盘空间永远不会被使用。从本质上说,分页可以避免盲目地分配磁盘空间,从而使更多的任务存储在内存中,这样也会使得进程的交换最少,因为只有部分进程存储在内存之中。
那么分页和交换之间的联系与区别是什么呢?AIX 在进行分页时,进程的部分内容将在磁盘和内存之间来回移动;而当发生交换时,整个进程的内容都会来回移动。
AIX 采用了一种较为灵活的方式,在将进程移动到分页空间之前,AIX 会挂起整个进程。只有在将进程交换回内存后,再继续执行它。但是出现这样的情况对性能来说并不是很好,会使性能急剧下降,所以应当尽量防止交换的发生。
AIX 支持三种不同模式的分页空间分配策略:延迟的页面空间分配(deferred page space allocation)、晚页面空间分配(late page spaceallocation)、早页面空间分配(early page space allocation)。AIX 的默认策略是延迟的页面空间分配。这种做法能够确保将分页空间的分配延迟到必须调出页面的时候进行,从而确保不会浪费分页空间。但是当AIX 拥有大量内存的情况下,则不会发生分页,或许不需要使用分页空间。下面我们来看一个例子:
# lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
hd6 hdisk0 rootvg 4096MB 1 yes yes lv
从本例中,我们可以看出,AIX 使用了百分之一的分页空间。那么AIX 是如何处理分页空间的呢?我们继续操作:
# vmo -a | grep def
defps = 1
通过使用vmo 命令查询相关信息,我们确认了AIX 使用了默认的延迟的页面空间分配策略。如果需要禁用这个策略,则需要将defps 参数设置为0。这时AIX将使用晚分页空间分配策略。晚分页空间分配策略会在内存中相应的页面被修改时才分配分页磁盘块,这种方法多用于性能比可靠性要求更苛刻的应用系统中。
那么早页面空间分配又是如何工作的呢?我们知道由于内存的缺乏会导致应用程序可能会运行失败。在很多情况下,我们的内存没有那么多,而又想能够正常的运行应用程序,那我们可以采取这种早页面空间分配策略。
早页面空间分配策略可以预先分配分页空间。这种策略原理与晚分页空间分配策略完全相反,多用于对于可靠性要求很高的环境,可以使用这种策略。那么如何启用这种策略呢,方法是将PSALLOC 环境变量设置为early(PSALLOC=early)。
为了能够更加有效和灵活的管理页面,AIX 还引入了垃圾回收特性,这个特性允许我们释放分页空间磁盘块,从而允许我们的配置比通常所需要的更少的分页空间,但是这种特性只能用于延迟页面空间分配策略。通过以上我们对AIX 分页技术的分析,相信大家能够更好的去理解AIX 的底
层技术,从而使大家能够更有针对性的去定制和使用AIX 操作系统,达到使用的最优化。
|
|