CentOS7增加swap文件

创建Linos虚拟机的时候选择了默认,使用VestaCP的时候又用了默认。
两个默认导致1G内存吃紧,MySQL经常因为申请不到空间而挂掉,而MySQL的监视线程就会去重启MySQL,重启时内存仍旧不足,就此挂掉。
尝试了好多办法缩减https和mySQL服务所占用的内存,有好用的有不好用的,总之杯水车薪。

既然节流不行,那就换个思路试试开源吧。关键字一搜,果然CentOS增加swap文件是非常方便的。
所以这是一个说穿了一文不值的解决方案。

1.用命令查看你的内存和扩展分区是不是不够用

swapon -s
free -m

够用了非要加也没人拦着。

2.查看硬盘空间

df -h

3.创建SWAP文件

sudo fallocate -l 1G /swapfile

1G是大小,按需。创建到根下。

4.把文件转成SWAP

sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

可以用

free -m

验证是否创建成功

5.固定文件
上面创建的文件在重启以后需要重新转换,所以要在启动的时候添加选项

sudo vi /etc/fstab

在最后增加

/swapfile   swap    swap    sw  0   0

大功告成!

已有12条评论

  1. 你把`performance_schema = 0`配上,mysql能省不少内存。我这无swap才512MB内存的就是这么过日子的。

    1. 试过了。我搜到的是`performance_schema = off`,不明显啊。

      1. 那就奇怪了。你的MySQL是什么版本?这个参数是5.6和5.7的。
        如果用5.5,内存本身就应该很省,但是5.5的限制太多了(比如字段长度太小)
        MySQL运行时站过的内存总不释放,除非系统紧缺,所以SWAP也要小心设置大小。

        1. mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1
          VestaCP的默认,没改过。

          1. MariaDB啊,而且对应的是5.5,没有这个参数。

  2. 也有你解决不了的

  3. zhe今天有你折腾的了。

  4. 这些都是比较实用的,支持

  5. Ctrl+p,搞定,收工。以后搬迁海外或许能用得到。

  6. 你的mysql版本5.几的,1G内存老老实实5.5

  7. 原来1G的机器MySQL会内存不足- – 我一直以为MySQL在任何环境下运行都没事的。。

    1. 离开配置谈性能都是扯淡。

  8. 请问这个code高亮显示插件是什么?

你好,新朋友。留言前请先填写昵称邮箱