linux内存swap什么意思,Linux中Swap与Memory内存简单介绍

1.背景介绍

这篇文章介绍一下Linux中swap与memory。对于memory没什么可说的就是机器的物理内存,读写速度低于cpu一个量级,可是高于磁盘不止一个量级。因此,程序和数据若是在内存的话,会有很是快的读写速度。可是,内存的造价是要高于磁盘的,虽然相对来讲价格一直在下降。除此以外,内存的断电丢失数据也是一个缘由说不能把全部数据和程序都保存在内存中。既然不能所有使用内存,那数据还有程序确定不可能一直霸占在内存中。当内存没有可用的,就必需要把内存中不常常运行的程序给踢出去。可是踢到哪里去,这时候swap就出现了。

swap全称为swap place,即交换区,当内存不够的时候,被踢出的进程被暂时存储到交换区。当须要这条被踢出的进程的时候,就从交换区从新加载到内存,不然它不会主动交换到真实内存中。

2.swap介绍

在详细介绍swap以前,咱们须要知道的是计算机对内存分为物理内存与虚拟内存(注意虚拟内存和虚拟地址空间的区别)。物理内存就是计算机的实际内存大小,由RAM芯片组成的。虚拟内存则是虚拟出来的、使用磁盘代替内存。虚拟内存的出现,让机器内存不够的状况获得部分解决。当程序运行起来由操做系统作具体虚拟内存到物理内存的替换和加载(相应的页与段的虚拟内存管理)。

这里的虚拟内存即所谓的swap。

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

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

3.swap的设置

从上能够看出,当物理内存使用完或者达到必定比例以后,咱们可使用swap作临时的内存使用。当物理内存和swap都被使用完那么就会出错,out of memory。对于使用多大比例内存以后开始使用swap,在系统的配置文件中能够经过调整参数进行修改。cat  /proc/sys/vm/swappiness 60

该参数能够从0-100进行设置。0就是最大限度使用内存,尽可能不使用swap;100就是积极使用swap。这个具体的经过系统的算法进行肯定。

物理内存咱们是没法更改的,因此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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值