linux 修改 Swap

1,474 阅读1分钟
原文链接: blog.timeliar.date

刚入了一台digital ocean[1]的VPS,1核1G,30G+SSD只要10$,遂在上面跑了一个gitlab,作为个人git仓库,然而启动后出现了502,已检查发现内存不够,原来默认没有分swap(好坑),手动添加一下吧

查看swap分区占用情况

$ cat /proc/meminfo | grep Swap
SwapCached:            0 kB
SwapTotal:             0 kB
SwapFree:              0 kB

此时Swap分区为空

查看系统还有多少空间

$ df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        30G  1.8G   27G   7% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            493M  4.0K  493M   1% /dev
tmpfs           100M  316K  100M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            498M   24K  497M   1% /run/shm
none            100M     0  100M   0% /run/user

此时/目录还有27G,可以分

创建Swap文件

$ sudo dd =/dev/zero of=/swap.disk bs=1m count=2k

(/dev/zero[2])或者

$ sudo fallocate  2G /swap.disk

(fallocate[3]) man page[4] 此时根目录下生成swap.disk,可设置chmod 600 /swap.disk使swap只能root可读写,保证读写安全

设置Swap

$ sudo mkswap /swap.disk
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=1ba86321-c49d-434c-8c52-741173fb5eab

启动Swap

$ sudo swapon /swap.disk

在查看内存用量

$ cat /proc/meminfo | grep Swap
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB

已有Swap数据

设置重启不失效

上述方法在系统重启后swap会自动不挂载,设置方法为

$ sudo  "/swap.disk   none    swap    sw    0   0" >> /etc/fstab

设置Swap用量

$ sudo  "vm.vfs_cache_pressure = 50" >> /etc/sysctl.conf

为了不重启生效,则

$ sysctl vm.swappiness=10