how to add swap on ubuntu

在 digitalocean 最低配的 vps 上安装 Rails 环境,发现 bundle install 报错,一查发现好尴尬的问题,内存不够。

Cannot allocate memory - /usr/bin/ruby2.3 -r ./siteconf20161125-1500-iefngg.rb extconf.rb 2>&1

最直接的方法是加内存,还有一种方法就是给系统添加 swap
下面是在 Ubuntu 添加 swap 的过程的记录。

  1. 检查系统中是否已经添加 swap
    sudo swapon -s
  2. 查看文件系统
    df 得到的数字实在是比较尴尬
hww@ubuntu-512mb-nyc2-01:~/my_page$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              242192       0    242192   0% /dev
tmpfs              50024    2896     47128   6% /run
/dev/vda1       20510568 3664972  15789724  19% /
tmpfs             250112       0    250112   0% /dev/shm
tmpfs               5120       0      5120   0% /run/lock
tmpfs             250112       0    250112   0% /sys/fs/cgroup
tmpfs              50024       0     50024   0% /run/user/1000

vda1 这块盘只有了百分之六,分配 256M 给 swap 绰绰有余,哈哈。

  1. 新建和开启 swap
  2. 新建 swap 文件 sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
    注一定要用 swapfile 作为拷贝的 target 文件
  3. 设置 swap 文件 sudo mkswap /swapfile
    Setting up swapspace version 1, size = 256 MiB (268431360 bytes)
    no label, UUID=66b103eb-4c49-4ed9-9327-4ed98cf8c2e4
    
  4. 激活 swap 文件 sudo swapon /swapfile
    现在你可以看到新建的 swap 文件了
hww@ubuntu-512mb-nyc2-01:~/my_page$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 256 MiB (268431360 bytes)
no label, UUID=66b103eb-4c49-4ed9-9327-4ed98cf8c2e4
  1. swap 启动挂载
    sudo vi /etc/fstab
    把这行配置拷贝进去 /swapfile none swap sw 0 0

还有一个配置我不懂代表啥,但是很有道理的样子

Swappiness in the file should be set to 10. Skipping this step may cause both poor performance, whereas setting it to 10 will cause swap to act as an emergency buffer, preventing out-of-memory crashes.
You can do this with the following commands:
echo 10 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

最后就是设置/swapfile 文件权限

sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

还有就是系统已存在 swap ,扩大可使用下面的方法

  1. Turn the swapfile off : swapoff -a
  2. sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k
  3. Follow the remaining steps from after the dd command. Except for the Fstab modification as that is already completed.
  4. Your swapfile is now bigger
    完毕

参考

  • How To Add Swap Space on Ubuntu 16.04

你可能感兴趣的:(how to add swap on ubuntu)