在Linux下设置swap

linux

2016-04-10 15:53 PM

今早起来发现博客的数据库挂了,赶紧用手机上的ConnectBot连上去把mysql启动。看了下日志大概是因为内存不够用且没设置swap,所以mysql进程申请不到内存挂了(小内存服务器桑不起)所以赶紧把swap搞上,这样至少能让服务不轻易挂掉。

这里记录一下,以备遗忘。


大概分三步

  • 生成一个空文件
  • 把文件格式化成swap格式
  • 挂载
  1. # create swap file
  2. sudo dd if=/dev/zero of=/swapfile bs=128M count=4
  3. # adjust permission
  4. sudo chmod 600 /swapfile
  5. # format swap
  6. sudo mkswap /swapfile
  7. # mount swap
  8. sudo swapon /swapfile
  9. # see if ok
  10. sudo swapon -s

没问题的话,最后一个命令会显示

  1. Filename Type Size Used Priority
  2. /swapfile file 524284 0 -1

另外,dd程序花的时间比较长,因为它确实写入东西了。但其实Linux的文件系统有个功能,它可以忽略(合并?)文件中的0,比如一个1G的文件,只有前面3个字节和后面3个字节写字了,其余都是0,那么在硬盘上只会记录几个字节,而不会把上G的0写到硬盘中,这样就能加快性能。

所以可以使用 fallocate 程序。

  1. sudo fallocate -l 512M /swapfile

这个应该会很快。

最后,修改一下fstab,保证开机自动挂载:

  1. sudo vim /etc/fstab
  2. # write this to fstab
  3. /swapfile none swap sw 0 0

发表于 2016-04-10 15:53 PM,最后更新于 2019-01-08 16:54:35 PM。

本文使用 署名 - 非商业性使用 - 相同方式共享 4.0 国际 协议


评论加载中...

首页