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. 检查系统中是否已经添加 swapsudo swapon -s
  2. 查看文件系统df 得到的数字实在是比较尴尬

    [email protected]:~/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 绰绰有余,哈哈。

  3. 新建和开启 swap

    1. 新建 swap 文件 sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k注一定要用 swapfile 作为拷贝的 target 文件
    2. 设置 swap 文件 sudo mkswap /swapfile

      Setting up swapspace version 1, size = 256 MiB (268431360 bytes)
      no label, UUID=66b103eb-4c49-4ed9-9327-4ed98cf8c2e4
      
    3. 激活 swap 文件 sudo swapon /swapfile现在你可以看到新建的 swap 文件了

      [email protected]:~/my_page$ sudo mkswap /swapfile
      Setting up swapspace version 1, size = 256 MiB (268431360 bytes)
      no label, UUID=66b103eb-4c49-4ed9-9327-4ed98cf8c2e4
      
  4. 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完毕

参考

0 条评论
您想说点什么吗?