您的位置:首页 > 其它

hp-ux pseudo-swap(伪交换分区)深入解析

2014-01-09 16:42 281 查看
在一个计算机系统中,物理内存是一个有限的资源。尽管有更多的进程需要执行,但是同时在物理内存运行的进程数量是有限的。交换和换页允许部分进程在物理内存和大容量存储间移动。这就会释放物理内存的空间。

交换区:这是一块在磁盘上的空间,它临时的存放在内存中的进程的镜像。当物理内存的需求非常低,进程的内存镜像从交换区回到物理内存中。

一、有两个后台守护进程用于管理伪内存子系统:(SWAP)

1.vhand

为了使系统能有效地运行,会始终尽力保持可用页面高于阀值。只要可用内存不低于被称为lossfree的阀值,就不会发生页面切换。当可用内存低于该阀值时,vhand将选择最近未访问的页面并将其调到交换区,然后将这些页面加入可分配页面列表,这称为page-out。当进程要访问页面而该页面不在内存中时会发生page fault。无论是数据从交换区,还是执行代码从硬盘,该页面都会通过page-in调入内存。

非常大的内存需求的系统上(如运行许多大程序的系统),页面交换守护程序会忙于页面的调入和调出,从而使系统花所有的时间在页面交换上,而没有足够的时间运行程序。当这种现象发生时,系统性能会显著下降,这时系统被称为处于thrashing状态。如果你怀疑你的系统处于thrashing状态,可用ps来检查vhand所使用的CPU时间,如果vhand占用大量的CPU时间,考虑购买更多的内存!

2.swapper

swap可追溯到早期UNIX通过将整个进程空间在内存和二级存储之间的交换来管理物理内存资源的方法,许多现代的伪内存管理系统不再将整个进程空间进行交换,因为这种方法使系统花费太多的时间处理I/O,而不是实际的工作。整区交换被deactivation机制所替代,该方法允许使用页面交换技术将长期未用的页面置换出内存,页面交换是一种更有效的管理伪内存的机制。

当系统处于thrashing状态时,或当可用内存低于另一个阀值minfree时,swapper将被激活。Swapper使进程变为非激活状态,该状态可防止进程运行,因此减少了他们所占页面被访问的频率。这使vhand有机会将该进程未访问的页面调到交换区,释放占用物理内存中的页面。当swapper检测到可用内存已恢复到minfree以上且系统不再处于thrashing时,系统会激活被置于非激活状态的进程。

二、交换区的类型:

主交换区 系统引导时至少要有一个设备交换区可用,这就是主交换区。主交换区默认放在根盘上。(主交换区可以不在/etc/fstab中出现)

辅交换区 可以使用除主交换区以外的其他交换区,即辅交换区。若是用设备交换区作为辅交换区,请将其设置在非根盘上,以获得更好的性能。文件系统交换区总是辅交换区。

如何更该主交换区 首先确保将要成为主交换区的交换区时可用的交换区

用lvrmboot取消先前的定义:lvrmboot –s /dev/vg00

用lvlnboot重新定义主交换区:lvlnboot -s /dev/vg00/lv_swap

重启:shutdown –ry 0

三、关于交换区的几个内核参数:

1. mxswapchunks:限制交换区的块的数值,默认为256个。

2. schunk:交换块的大小,默认是2(MB).

3. nswapdev:定义了最大可以动态设置的交换设备的数量,默认是10,最大为25。

4. nswapfs:定义了为文件系统交换区启用的最多文件系统数,默认是10,最大是25。

四、关于用/etc/fstab启用交换区

在/etc/fstab文件中定义交换区,以保证其在系统引导时被起用。引导时,swapon –a 命令启用所有/etc/fstab里的交换条目。以下是fstab中的内容:

/dev/vg00/lvol3 / hfs defaults 0 1

/dev/vg00/lvol1 /stand hfs defaults 0 1

/dev/vg00/lvol4 /home hfs defaults 0 2

/dev/vg00/lvol5 /opt hfs defaults 0 2

/dev/vg00/lvol6 /tmp hfs defaults 0 2

/dev/vg00/lvol7 /usr hfs defaults 0 2

/dev/vg00/lvol8 /var hfs defaults 0 2

/dev/vg00/lvol9 /log hfs rw,suid 0 2

/dev/vg00/lv_swap1 /paging hfs defaults 0 2

/dev/dsk/c0t1d0 . swap defaults 0 0

/dev/dsk/c0t1d0 . swap end 0 0

/dev/vg00/lv_swap . swap defaults 0 0

/dev/vg00/lv_swap1 /paging swapfs pri-4,lim=4m 0 0

注意:

1.主交换区可以不出现在该文件中。

2.在文件系统的交换区的条目前,一定有把该文件系统mount上的条目。

五、选择设备交换区的指导方针:

1. 从性能的角度看,提供相同大小空间的在不同硬盘上的两个交换区比一个交换区好。同样由于性能的缘故,同一硬盘上不应该存在多个交换区。

2. 如果使用LVM,则可将多个设备交换区设定在不同硬盘的逻辑卷上。

3. 设备交换区应该具有相同的大小,否则,当所有小交换区空间被使用完毕后,不可能交替使用交换区。

六:附录:与swap相关的内核参数

Memory Swap Subsystem(内存交换子系统)

* Memory paging parameters(内存页面参数):

allocate_fs_swapmap 固定的或动态的交换数据结构分配

Minimum: 0(根据需要分配交换数据结构)

Maximum: 1(预先分配必须的核心数据结构)

Default: 0

OLTP: 0

maxswapchunks 对客户来说,可得到的最大交换空间

Minimum: 1

Maximum: 16384

Default: 256

OLTP: 4096

nswapdev 可得到的交换设备的数量

Minimum: 1

Maximum: 25

Default: 10

OLTP: 25

nswapfs 系统用于交换的文件数

Minimum: 1

Maximum: 25

Default: 10

OLTP: 10

page_text_to_local 在客户端启动/关闭文本交换

Minimum: 0(独立方式或客户方式使用文件系统服务器 )

Maximum: 1 (使用客户本地交换)

Default: 1(使用客户本地交换)

OLTP: 0

remote_nfs_swap 启动/关闭对远程NFS的交换

Minimum: 0

Maximum: 1

Default: 0

OLTP: 0

swapmem_on 启动/关闭虚交换保留

Minimum: 0(关闭虚交换保留)

Maximum: 1(启动虚交换保留)

Default: 1

OLTP: 0

swchunk 客户交换块大小

Minimum: 2048

Maximum: 16384

Default: 2048

OLTP: 2048
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: