[关闭]
@zwh8800 2016-04-23T20:18:17.000000Z 字数 688 阅读 325820

在Linux下设置swap

blog linux


今早起来发现博客的数据库挂了,赶紧用手机上的ConnectBot连上去把mysql启动。看了下日志大概是因为内存不够用且没设置swap,所以mysql进程申请不到内存挂了(小内存服务器桑不起)所以赶紧把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
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注