• Linux SWAP 交换分区


    一、SWAP 概述

    当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

    这个是SWAP 交换分区的作用。 实际上,我们更关注的应该是SWAP分区的大小问题。 设置多大才是最优的。

    一般来说可以按照如下规则设置swap大小:

    4G以内的物理内存,SWAP 设置为内存的2倍。
    
    4-8G的物理内存,SWAP 等于内存大小。
    
    8-64G 的物理内存,SWAP 设置为8G。
    
    64-256G物理内存,SWAP 设置为16G。

    实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。

    二、SWAP 分区

    查看系统RAM大小

    free -m
    total used free shared buff
    /cache available Mem: 1839 201 602 0 1035 1457 Swap: 0 0 0

    根据Oracle官方建议(见下方)创建swap

    dd if=/dev/zero of=/home/swap bs=1M count=2048

    格式化分区文件

    mkswap /home/swap 
    if表示infile, of表示outfile, bs=1M代表增加的模块大小,count=2048代表是2048个模块,也就是2G空间大小
    
    count的计算公式: count = size * bs (size以MB为单位)

    这样就创建了一个/home/swap的分区文件,大小为2G

    用swapon命令激活swap,立即启用交换分区文件

    swapon /home/swap

    如果需要关闭swap分区则执行

    swapoff /home/swap

    此时用free -m查看一下,可以看出swap扩大了

    为了使操作系统在重启后swap自动挂载,要修改/etc/fstab文件

     vi /etc/fstab
    在文件末尾加上
    
    /home/swap swap swap default 0 0

    这样就算重启系统,swap分区也不用手动挂载了

    三、系统在什么情况下才会使用SWAP?

    实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。

    cat /proc/sys/vm/swappiness
    
    60   # 该值默认值是60.

    swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,

    swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

    现在服务器的内存动不动就是上百G,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。

    四、修改swappiness参数

    --临时性修改:

    sysctl vm.swappiness=10
    # vm.swappiness = 10

    cat /proc/sys/vm/swappiness # 10

    这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.

    --永久修改:

    在/etc/sysctl.conf 文件里添加如下参数:

    vm.swappiness=10

    或者:

    echo 'vm.swappiness=10' >>/etc/sysctl.conf

    保存,重启,就生效了。

    参考:

    https://www.jianshu.com/p/5686ea5a4697

    https://blog.csdn.net/tianlesoftware/article/details/8741873

  • 相关阅读:
    poj3041——最小点覆盖
    高斯消元
    hdu1704——floyd
    poj2594——最小路径覆盖
    POJ3020 二分图匹配——最小路径覆盖
    我的老博客
    [ZJOI2015]幻想乡战略游戏 动态点分治
    HDU 5737 Differencia set + 主席树
    HDU
    HDU
  • 原文地址:https://www.cnblogs.com/clbao/p/11199608.html
Copyright © 2020-2023  润新知