zoukankan      html  css  js  c++  java
  • linux 增加虚拟内存swap(使用文件)

    1、简介

    如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存是一个不错的选择。    

    为了测试一些功能我在阿里云购买了1核1G的ECS服务器几台(最便宜的了,再贵舍不得啊),一台服务器就安装了LANMP,redis,memcache,elk等等耗内存较大的软件,内存各种不够用啊,这时候虚拟内存就派上用场了。

     虚拟内存一般设置为物理内存的2倍即可,多了也是浪费硬盘。

    2、新增swap分区

      由于服务器已经安装了各种软件,懒得重新给硬盘分区,所以这里使用文件作为swap分区 ,下面操作需要在root用户下操作

      

      使用 free -h 查看当前内存占用情况,可以看到物理内存所剩无几,下面的swap也是使用的文件作为虚拟内存使用的

      创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小),如下面是2G

      # dd if=/dev/zero of=/root/swapfile2 bs=1M count=2048

      

      这里我使用的of为/root/swapfile2 ,可以看到该文件是新创建的,这时候这个文件还不能直接使用为swap文件

      修改文件权限,如不修改,在启用swap文件的时候会提示下面信息(不影响使用,建议修改)

      # chmod 0600 /root/swapfile2

      

      格式化为交换分区文件,建立swap的文件系统,/root/swapfile2需要与上面的of的值一致,这个目录可以自定义

      # mkswap /root/swapfile2

      

       

      启用swap文件:

      # swapon /root/swapfile2

      

      可以看到未启用时虚拟内存为2G,启用后内存增加了2G

      使系统开机时自启用

      # vim /etc/fstab

      

      在文件/etc/fstab中添加一行

      /root/swapfile2 swap swap defaults 0 0

    3、调整swap空间使用的优先级

      如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。

      swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

      各个操作系统的优先级可能都不一样,如果不调整,你会发现添加的虚拟内存几乎没有用到

      查看当前swappiness值

      # cat /proc/sys/vm/swappiness

      

      修改swappiness值为60(临时修改,重启后即还原为默认值)

      # sudo sysctl vm.swappiness=60

      

      

      永久修改swappiness默认值(重启生效)

      # vim /etc/sysctl.conf

      找到vm.swappiness ,如果没有则需要手动添加一行  vm.swappiness = 60 保存即可

      

      

      

      

      

     

     

    写的文章仅供自己参考,仅供自己参考,仅供自己参考,免得太久没有使用忘记了。
  • 相关阅读:
    【deep learning精华部分】稀疏自编码提取高阶特征、多层微调完全解释及代码逐行详解
    【machine learning通俗讲解code逐行注释】之线性回归实现
    softmax实现(程序逐句讲解)
    softmax回归(理论部分解释)
    AtomicInteger小小的理解
    jdk8新特性之lambda expressions
    i++ 与 ++i 的从字节码层面看二者的区别
    jdk8永久代从方法区移除的验证
    复杂事件处理引擎—Esper 处理模型
    复杂事件处理引擎—Esper参考(事件部分)
  • 原文地址:https://www.cnblogs.com/chennl/p/10167088.html
Copyright © 2011-2022 走看看