zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    openssl生成公钥私钥对 加解密
    boost replace_if replace_all_regex_copy用法
    PS 图像滤镜— — USM 锐化
    使用boost库生成 随机数 随机字符串
    改动Android设备信息,如改动手机型号为iPhone7黄金土豪版!
    验证(Verification)与确认(Validation)的差别
    Spring-SpringMVC-Hibernate整合
    全面整理的C++面试题
    Metropolis Hasting算法
    捕捉到来自宇宙深空的神奇X-射线信号
  • 原文地址:https://www.cnblogs.com/cy-8593/p/9513292.html
Copyright © 2011-2022 走看看