linux swap

一:背景介绍

  对于Linux来说,其在服务器市场的使用已经占据了绝对的霸主地位,不可动摇。Linux的各种设计思想和使用也被传承(当然不乏各种黑Linux,而且黑的漂亮)。Linux的很多独特的设计,对性能也产生了巨大的提升,也为其他应用软件和系统提供了参考。这篇文章介绍一下Linux中swap与memory。

  对于memory没什么可说的就是机器的物理内存,读写速度低于cpu一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存的造价是要高于磁盘的,虽然相对来说价格一直在降低。所以,不可能一整个机器有非常大的内存。既然没这么大的内存,那数据还有程序肯定不可能一直霸占在内存中,所以当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去。但是踢到哪里去,这时候swap就出现了。swap全称为swap place,,即交换区,当内存不够的时候,被踢出的进程被暂时存储到交换区,当内粗充足或者需要这条被提出的进程的时候,就从交换区重新移动到内存。

 二:swap介绍

  在详细介绍swap之前,我们需要知道的是计算机对内存分为物理内存与虚拟内存。物理内存就是计算机的实际内存大小,由RAM芯片组成的。而虚拟内存则是一个不存在,仅是为了提供开发者方便使用内存的一种技术。虚拟内存的出现,让开发者不必担心物理内存的限制,可以方便的申请并使用内存。然后由操作系统做具体虚拟内存到物理内存的转换(相应的页与段的虚拟内存管理)。

  虚拟内存的出现让开发者不必担心物理内存的限制,但是在实际的操作系统中物理内存还是有限制的,对于一个进程,它可以识别的内存就是机器的物理内存。那么操作系统是如何实现这种转换的那。这就是swap发挥作用。

  当用户提交程序,然后产生进程,在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有那么则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出swap扮演了一个非常重要的角色,就是暂存被换出的进程。

  内存与swap之间是按照内存页为单位来交换数据的,一般Linux中页的大小设置为4kb。而内存与磁盘则是按照块来交换数据的。

三: swap的设置

  从上可以看出,当物理内存使用完之后,我们可以使用swap做临时的内存使用。但是当swap使用完之后那?swap被使用完,就会出错,out of memory。物理内存我们是无法更改的,所以swap的大小设置将会影响应用能否正常运行。

  那么swap大小如何设置那,根据centos官网介绍可以得出如下公式:M = Amount of RAM in GB, and S = Amount of swap in GB, then If M < 2, S = M *2 Else S = M + 2。而且其最小不应该小于32M(never less than 32 MB.)。

  swap分区的数量对性能也有很大的影响。因为swap毕竟还是以磁盘来伪装成内存,交换的操作是磁盘IO的操作而不是内存的load与store操作。如果有多个swap交换区,每个swap会有一定的优先级,该优先级也可以调整。swap空间的分配会以轮流的方式操作于所有的swap,这样会大大均衡IO的负载,加快swap交换的速度。

四:swap相关命令

  swapon/swapoff swap-disk_name:启动和关闭相应的swap_disk_name

  swapon -s :可以查看当期swap的使用情况,也可以通过 cat /proc/swaps命令查看


附上一张我自己的信息图




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值