Chinaunix首页 | 论坛 | 博客
  • 博客访问: 414330
  • 博文数量: 83
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 900
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-02 01:33
文章分类

全部博文(83)

文章存档

2011年(1)

2010年(5)

2009年(10)

2008年(4)

2007年(24)

2006年(39)

我的朋友

分类:

2010-10-14 17:57:09

要理解伪交换,首先得清楚交换区的概念和HP-UX的交换机制!
交换区(swap)是存在于高速存储设备上的一块区域,就是系统物理内存不足时,OS用来临时存放物理内存的一部分数据,从而腾出更多的物理内存空间!
HP-UX
的交换机制:系统每启动一个进程,都会在交换区预留一定的空间(等同于该进程使用物理内存的大小),以防内存不足时,有足够的交换区来临时存放数据,但不一定真正使用。但是交换区预留以后,不管是不是真的被使用,就不能再被其它进程预留(使用),除非该进程运行完毕自然释放。
打个比方,酒店里客人预定了座位,那么这个座位就不能再接受别人的预定,除非客人打电话取消预定。当然,即使客人预定了不代表就一定来吃。
和交换区预留不一样的是:座位预定了通常客人是要来真正使用的,而交换区预留以后通常是不使用的。
这种机制会导致的一个问题是:如果内存很大,可能会导致内存浪费!为什么呢?
假设系统物理内存是8G,那么按照常规的设置,交换区大小是内存的12倍,就是8-16G!但是,通常的情况是,购买了大内存,就是为了避免内存不足产生交换,这种状况下,交换区是很少有机会做真正的数据交换的。有些客户会把交换区设为4G或者更少到2G(这完全有可能;节省存储空间啊)!
后果是,随着新进程的不断启动,当交换区被预留完了以后,系统就不能再启动新的进程;而此时其实物理内存可能还有3G或者更多的空余,却什么也不能干了!
为了解决这个矛盾,HP-UX推出伪交换区的概念!就是当系统启用伪交换以后,系统会默认为交换区的总数=物理内存的75%+其它交换区的总数。而这个75%的伪交换区其实是不存在的(欺骗):不在内存、不在硬盘或者任何文件系统中。意思就是说,当真正的交换区用光了还要启动新进程时,告诉系统,我的交换区还多着呢,该启动谁尽管启动......
是否启用伪交换,可以通过系统内核参数swapmem_on来设置,1表示启用,0表示不启用。
通常,实际交换区的大小大于或等于物理内存大小时,这个参数启不启用没什么
阅读(1227) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-15 16:33:00

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com