• Linux 交换分区swap


    Linux 交换分区swap

    1. 创建和启用swap交换区

    如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存是一个不错的选择,我购买的DigitalOcean VPS 512M内存基本不够用的;好在VPS的母鸡使用的SSD,正常读写速度都在300MB/s以上,启用swap后性能提高了不少,特别是在处理消耗大内存的脚本方面。

    1.1 创建交换区原则

    1. 创建的swap交换区大小应该大于实际物理内存的容量大小,但是不要过大,以免造成硬盘空间浪费。
    2. 如果内存IO请求频繁,而单一swap交换区IO队列等待时间过长的话,可以多创建几个swap交换区。
    3. 原则上优先在IO速度最快的设备上创建。

    1.2 创建步骤

    1.2.1 创建swap交换区硬盘存储用的空白文件。

    dd if=/dev/zero of=/swap bs=1M count=1024 //创建一个1个G的SWAP交换区空白文件,通常创建物理内存2~2.5倍大小的文件作为交换区

    1.2.2 使用mkswap格式化文件为swap文件系统

    mkswap -f /swap //-f 使用文件作为swap交换区

    1.2.3 启用刚才创建的Swap文件

    swapon /swap

    1.2.4 如果有必要可以设置开机自动启用swap文件交换区,修改/etc/fstab,增加一行

    /swap swap swap defaults 0 0 //启动即启用swap

    1.2.5 如果不需要启用swap或需要调整swap大小,可以使用swapoff命令关闭swap。

    swapoff /swap //关闭swap后删除对应的swap文件即可删除swap交换区,如需要调整swap交换区大小,从第一部开始重新创建即可。

    2. swap 优先级调整

    cat /proc/sys/vm/swappiness ,值默认值是60, swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap 空间 swappiness=100 的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。现在服务器的内存动不动就是上百G,或者云主机架构,机器io太慢会极大的影响机器性能,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。

    另: 在大内存服务器中我们需要设置这个值为0,尤其是在Mysql服务器上

    • 临时修改方案:
      # 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

  • 相关阅读:
    中秋假期乱做
    记一道典题 分层图+同余系建图
    Java 创建对象的几种方式
    1029 Median (25 分)(two pointers)
    1107 Social Clusters (30 分)(并查集)
    1153 Decode Registration Card of PAT (25 分)(模拟,排序,map)
    1143 Lowest Common Ancestor (30 分)(二叉查找树)
    1149 Dangerous Goods Packaging (25 分)
    1152 Google Recruitment (20 分)(字符串处理)
    1154 Vertex Coloring (25 分)(set,hash)
  • 原文地址:https://www.cnblogs.com/cy-8593/p/9513292.html
Copyright © 2020-2023  润新知