CentOS7创建(添加)、删除以及配置swap分区的教程

投稿   cheny  2018-07-07 07:58:33  142 人阅读  19 条评论

小叨下背景:笔者的服务器内存只有 1g,少得可怜。之前使用apache,不堪忍受其过量的内存消耗,网站卡得想哭,数据库也不断地崩,无奈投入 nginx 的怀抱并且已经喜欢上了 nginx。然而过了几个月后数据库还是继续崩,经查询mysql日志还是因为内存吃不消,折腾几番发现 mysql 自身就不是省油的灯,一度占用了 500M 的内存------我捂住嘴巴不让自己哭出来,还顺便来了段 Bbox。

这两天我那谁一直在折腾 RedHat 安装 Oracle 数据,该数据库有一项要求就是需要一定空间的swap 分区。虽然早有耳闻 swap 分区,而且笔者经常折腾 windows 下的虚拟内存(swap 和虚拟内存是类似概念),却很惭愧一直没想到这个办法,于是------进入今天的主题。

CentOS7创建(添加)、删除以及配置swap分区的教程 建站经验 第1张

在添加 swap 分区之前我们可以了解下当前系统 swap 是否存在以及使用情况,可用:

  1. free -h 或 swapon -s

了解硬盘使用情况(一般/dev/vda1 为挂载硬盘):

  1. df -hal

1、创建(添加)swap分区

使用 dd 命令创建名为 swapfile 的 swap 交换文件(文件名和目录任意):

  1. dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=2097152

  1. dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=2048k
科普:

if(即输入文件,input file),of(即输出文件,output file)。dev/zero 是 Linux 的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供 0,可以提供任何你需要的数目。bs=1024 :单位数据块(block)同时读入/输出的块字节大小为 1024 个字节即 1KB,bs(即 block size)。count=2048000 :数据块(block)数量为 2048000 ,即 2048000 个 1KB。可以计算 swap 分区的容量为:1KB 2097152=1KB *1024(k)10242=2097152=2G。(dd 命令里的单位 M 表示 10241024,k 表示 1024)。

回车后,会执行 2g 的读写操作,系统会卡一段时间,耐心等待执行结果。执行完毕,对交换文件格式化并转换为 swap 分区:

  1. mkswap  /var/swapfile

挂载并激活分区:

  1. swapon   /var/swapfile

执行以上命令可能会出现:“不安全的权限 0644,建议使用 0600”类似提示,不要紧张,实际上已经激活了,可以忽略提示,也可以听从系统的建议修改下权限:

  1. chmod -R 0600 /var/swapfile

这时候可以用 free -h 或 swapon -s 命令查看新 swap 分区是否正常添加并激活使用。

修改 fstab 配置,设置开机自动挂载该分区:

  1. vim    /etc/fstab

在 fstab 文件末尾追加如下内容后:wq!保存即可:

  1. /var/swapfile   swap  swap  defaults  0  0

或直接对 fstab 进行 echo 追加:

  1. echo  "/var/swapfile   swap  swap  defaults  0  0" >>  /etc/fstab

2、删除某 swap分区

先停止正在使用 swap 分区:

  1. swapoff  /var/swapfile

删除 swap 分区文件

  1. rm -rf   /var/swapfile

删除或注释掉我们之前在 fstab 文件里追加的开机自动挂载配置内容:

  1. /var/swapfile   swap  swap  defaults  0  0

3、更改 Swap配置(进阶级)

swappiness 值(0-100),系统对 swap 分区的依赖程度,越高则越倾向于使用 swap 分区。当然,高度依赖 swap 会造成物理内存远未使用完,就使用 swap 分区,我们知道 swap 分区性能远不如物理内存,这反而降低了系统性能,违背了我们创建 swap 分区的初衷。我们希望在物理内存即将满荷时再使用 swap,这就决定了 swappiness 值一般为 10-60 为宜,固态硬盘可以偏高些。

查看当前的 swappiness 数值:

  1. cat   /proc/sys/vm/swappiness

修改 swappiness 值,这里以 50 为例。

  1. sysctl vm.swappiness=50

若希望 vm.swappiness=50 永久生效,则需要修改 sysctl 配置文件,直接 echo 追加配置内容,重启系统后即可生效:

  1. echo “vm.swappiness = 50”  >>  /etc/sysctl.conf

历史上的今天:

文章标签: ,   ,   ,  
原文地址:https://www.icheny.cn/%E5%85%B3%E4%BA%8Ecentos7%E4%B8%8Bswap%E5%88%86%E5%8C%BA%E5%88%9B%E5%BB%BA%E6%B7%BB%E5%8A%A0%E5%88%A0%E9%99%A4%E4%BB%A5%E5%8F%8A%E7%9B%B8%E5%85%B3%E9%85%8D%E7%BD%AE/
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 cheny 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!
公共账号

相关文章 分类热门分类热评最新问答

 发表评论

中国赞表情摊手表情吃瓜表情笑哭表情偷笑表情衰表情汗表情思考表情费解表情抓狂表情晕表情流泪表情疑问表情嘻嘻表情吃惊表情鼓掌表情

  1. 乘月网
    乘月网 @回复

    感谢各位的支持!

  2. 区块链
    区块链 @回复

    技术不够,就只会安装控制面板。

  3. 里维斯社
    里维斯社 @回复

    教程不错

  4. ZAERA
    ZAERA @回复

    我一般用512兆的机子,1G的机器配置都是很高了 [笑哭]

  5. 手机兼职
    手机兼职 @回复

    今天来晚了

  6. 在线读书
    在线读书 @回复

    到现在我也还不会弄命令这种玩意

  7. 思途小说网
    思途小说网 @回复

    抽时间该复习下命令了,看到楼主的写的命令 瞬间勾起回忆!

  8. 闲鱼
    闲鱼 @回复

    先学习,这种一般靠我自己是搞不定的

  9. 鬼手六
    鬼手六 @回复

    对于像我一天没几个访问量的小站,如果服务器有 1g内存已经很奢侈了,暂时就不折腾了 [污] ..

  10. 靠谱学生兼职网
    靠谱学生兼职网 @回复

    用宝塔的,其它再深的东西还真搞不定

  11. 云顶天的世界
    云顶天的世界 @回复

    最近刚升级到centos 7.3各种不习惯,还得适应一段时间。

  12. 完美世界
    完美世界 @回复

    看懂呀!多学习了

  13. 千眼网
    千眼网 @回复

    以前遇到这样的问题,直接加内存了。 当时还是太年轻啊

  14. 菊
     @回复

    最近打算在办公电脑上装个 Ubuntu 用一段时间

  15. 学习笔记Blog
    学习笔记Blog @回复

    我一般都是简单粗暴直接重启一下 Linux ,这样SWAP就重置了!

    • 乘月网
      乘月网2018-07-15 16:34  回复

      @学习笔记Blog可以配置开机自动挂载分区的:
      删除或注释掉我们之前在 fstab 文件里追加的开机自动挂载配置内容:
      /var/swapfile swap swap defaults 0 0

  16. 明月清风
    明月清风 @回复

    对于我来说,小水管遇见不错了,没想到笔者居然接受不了那机子。

  17. MCFON
    MCFON @回复

    涨姿势了。