virtual swap space on solaris

有人对solaris上的swap space提出了如下的疑问:

swap -l:
swapfile dev swaplo blocks free
/dev/vx/dsk/bootdg/swapvol 40,75002 16 33540080 33540080

swap -s :
total: 55705168k bytes allocated + 273872k reserved = 55979040k used, 15937056k available

top:
load averages: 8.08, 7.88, 7.52 00:06:43
361 processes: 355 sleeping, 1 zombie, 5 on cpu
CPU states: % idle, % user, % kernel, % iowait, % swap
Memory: 64G real, 7482M free, 53G swap in use, 15G swap free

swap -l显示的是physical swap file的大小 33540080 (blocks) * 512 (blocksize) = 16377MB,实际使用的physical swap file是0 (blocks - free blocks),而top中显示的是53G swap in use。swap -s中used的大小为55979040k (53.4G),和top的值相符。那么实际使用的swap space大小究竟是多少,physical swap space究竟是多少。

上面几个不同的数据确实让人迷惑,不过如果我们了解了solaris的virtual swap space机制,一切就很好理解了。写之前百度了一下,没有发现有文章很好的解释这个概念。

virtual swap space和virtual memory不同,注意不要混淆了。virtual swap space是在swap space之上虚拟的一层swap space。

先说说传统的方法,当application创建virtual memory是,要在swap space上reserve一段空间以便当physical memory不够的时候可以换出到swap space上。所以有physical swap space的大小最好为physical memory两倍大小的说法。

引入virtual swap space后,这一部分reserve的swap space是虚拟的,而不是真实的physical swap space。当有真实数据写入physical memory page的时候,这部分virtual swap状态转为reserved and allocated.这时候swap还是虚拟的swap space,并没有在physical swap space上创建,所以swap -l显示实际使用的physical swap space为0。只有当真正有swap out发生,也就是要将memory page的内容写入swap的时候,才会使用physical swap space。在这样的机制下,不需要像上面说的2倍物理内存大的swap space,系统也可以正常的运行。上面的例子中物理内存为64G大小,physical swap file大小仅为16G大小。

所以上面top里面显示了53G swap space (virtual swap space),而swap -l中swap space显示16G (physical swap space),使用的physical swap space 为0
swap -s中的 “used” 也是指的virtual swap space上reserved和reserved & allocated swap space的大小

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8183550/viewspace-668125/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8183550/viewspace-668125/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值