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 保存即可

  

  

  

  

  

 

linux 增加虚拟内存swap(使用文件)的更多相关文章

  1. Linux 增加虚拟内存

    1. 用 df -h 命令找一个比较大的磁盘空间 2.建立swap文件 大小为2G count= 3.启用虚拟内存 1. 将swap文件设置为swap分区文件 mkswap swapfile #(由于 ...

  2. Linux增加虚拟内存

    Docker容器启动Mysql镜像报错,提示无法分配内存,报错信息如下: 由此我们看到Swap为0,考虑适当增加swap. Linux开启swap空间有好几种方法,在这里只介绍比较常用的两种. 使用交 ...

  3. Linux增加虚拟内存方法

    例如增加2G虚拟内存,操作如下: [root@gamedb ~]# free -m[root@gamedb tmp]# dd if=/dev/zero of=/tmp/big_swap bs=1024 ...

  4. linux中增加swap分区文件的步骤方法

     一.swap交换分区 Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临 ...

  5. linux增加swap空间的方法小结

    起因及背景 近期编译AOSP(android 10.0)是总是遇到内存溢出,查了半天,无果.猜测增加下swap空间大小是否能解决,随即尝试下,果然是如此. 当然,还有其他作法,比如直接增加主机的内存( ...

  6. LINUX增加SWAP分区---install_oracle

    我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?在装完Linux系统之后,建立Swap分区有两种方法.1.新建磁盘分区作为swap分 ...

  7. 给Linux增加swap内存

    有时内存不足时, 编译xxx报错cc: 编译器内部错误:已杀死(程序 cc1) Please submit a full bug report, with preprocessed source if ...

  8. Linux增加Swap分区

    Linux增加Swap分区 dd if=/dev/zero of=/data/swap/swapfile1 bs=4096 count=2097152 mkswap /data/swap/swapfi ...

  9. #内存不够,swap来凑# Linux上创建SWAP文件/分区

    转自:https://www.vmvps.com/how-to-create-a-swap-file-on-the-linux-os.html 很久很久以前,电脑的内存是个珍贵东西,于是乎就有了swa ...

随机推荐

  1. Bate冲刺 第四天

    1.各个成员今日完成的任务及对项目的贡献小时数 姓名 今日已完成任务 时间 马玉婷 特殊字符测试与完善 5h 马美玲 菜单栏测试与完善 5h 益西卓嘎 撰写博文 1h 2. 提供当天站立式会议照片一张 ...

  2. js点滴3 vs vue

    web Components 学习之路 https://www.cnblogs.com/zhaowinter/p/5447246.html vue学习指路. vue全局配置. ignoredEleme ...

  3. Python 文件的基本操作

    打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:] "+" 表示可 ...

  4. PDO设置字符集

    <?php header("content-type:text/html;charset=GBK"); class CurlClass { protected $_pdo; ...

  5. Android(五)——dex文件动态调试

    代码动态调试: 代码动态调试技术,一般是通过观察程序在运行过程中的状态,如寄存器内容,函数执行结果,内存使用情况等等,分析函数功能,明确代码逻辑,查找可能存在的漏洞 工具:IDA 条件:Android ...

  6. vue中的路由

           路由配置项:        import Router from ‘vue-router’                          1.path:路径              ...

  7. 2015-10-28 C#4

    五.继承 5.1 父类又称(基类,超类)是被继承的类,子类又称派生类. 5.2 A:B,A就叫子类,B叫父类,B里面所有的成员(字段,方法)都会被A继承. B里面的私有成员,A也是继承下来了的,只是没 ...

  8. gitlab安装随记

    gitlab安装 配置yum源 sudo vim /etc/yum.repos.d/gitlab-ce.repo 按照网上别人的例子,修改为清华的源 [gitlab-ce] name=Gitlab C ...

  9. struts标签怎么判断request里的属性是否为空 <s:if test="${list==null}"> </s:if>

    <s:if test="${weigou}==999"> //错误的 ${list==null} ,$实在strtus的配置文件中取值用的,不是在jsp页面里取值的的吧 ...

  10. Oracle入门知识

    在客户端里PL/sql里面 记得用commint 回滚 所写得SQL语句才真的有效  如插入7千万个数据 没有执行commint 就等于没有 将数据真正的存入数据库服务器里面去 所以当其他前端链接上 ...