搜档网
当前位置:搜档网 › 交换分区交换分区是硬盘中的一块区域目的是当内存使用太多的时候

交换分区交换分区是硬盘中的一块区域目的是当内存使用太多的时候

交换分区交换分区是硬盘中的一块区域目的是当内存使用太多的时候
交换分区交换分区是硬盘中的一块区域目的是当内存使用太多的时候

交换分区

交换分区是硬盘中的一块区域,目的是当内存使用太多的时候,减轻内存的压力。当内存使用率超过某个阀值时,进程就会占用交换分区以释放内存空间给其他进程。

HPUX 要为每个系统中执行的进程reserve 同样大小的空间在交换分区中,即使这些交换空间不被使用,也依然要为进程预留不能被使用,以防内存不够时作数据交换,当预留的swap区用完时,系统就不能再启动新的进程。

传统上建议swap区是内存的2至3倍,但对于大内存系统,内存越大越不可能发生换页,如果按照这个原则分配swap区,会造成磁盘的浪费,所以HP 引进了伪交换的概念,伪交换只是逻辑意义上的交换区,没有占用任何物理空间,但对于操作系统来说,交换区大小为物理swap区和pseudo-swap(伪交换区)的总和,在HP11.11中,pseudo-swap是物理内存的3/4,在HP11.23中pseudo-swap 和物理内存大小一致。引进伪交换区后,不会发生交换的进程(如kernel进程)可以reserve伪交换区空间,不会reserve物理的swap区,这样大大减少了磁盘的浪费。

有了伪交换区后,物理swap区可以按以下公式计算或者设置为和内存大小一致。

以11.11为例:

Swap(dev)=X pseudo-swap=75%physical memory

APP/DB required memory=Y

X+pseudo-swap=total swap=2Y+buffer cache+dynamic

Swapinfo工具可以查看swap区的利用率,一般我们需要关心dev和total的利用率,dev表示物理swap区的使用情况,total表示总的swap区的使用情况,当dev使用率不为0,表明系统有换页发生,内存不足,当total使用率高时,表明系统总的swap区不足,可能导致新的进程无法创建,一般total的阀值设为80%,reserve表明物理swap区中有多少空间被reserver了。

Swapinfo命令示例如下:

swapinfo -atm

Mb Mb Mb PCT START/ Mb

TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME

dev 8192 848108 1% 0 - 1 /dev/vg00/lvol2 reserve - 6301 -6301

memory 8190 5121 3069 63%

total 16382 11506 4876 70% - 0 -

{swap管理机制]:

在HP-UX中,有两个后台守护进程对交换区(swap)进行管理,这两个守护进程就是vhand和swapper。简单来说,vhand这个进程会监控内存的使用状况,当内存的值低于lossfree的临界值的时候,vhand进程就会开始工作。它会将最近没有访问过的内存页面调度到交换区(swap)中,即page-out。当系统的应用对内存的要求很高的时候,这就可能会产生一个问题:vhand进程可能会经常作page-out的动作,如果太频繁了,就会影响系统的性能。这个因为频繁page-out 产生的性能大幅度下降的现象,thrashing——此时可以考虑增加内存来提高系统的性能。

而swapper这个守护进程是在系统内存值低于minfree的临界值的时候被激活的。此时swapper会将一些进程置为非激活的状态,来降低系统的繁忙度。当swapper监控到内存的值在minfree之上,系统才会重新激活那些非激活的进程。当swapper进程工作时,说明系统内存严重不足。

相关主题