阿里云服务器创建swap分区

阿里云服务器使用了4核8G内存配置,但最近由于jenkins构建时执行gradle打包安卓应用,导致即时的内存严重不足,线上应用长时间无法访问。

执行free命令才发现,swap分区一直是没有创建的。两台ubuntu都是这样。阿里云服务默认没有预创建交换分区!

1.使用系统盘创建块文件

admin@ubuntu:~# dd if=/dev/zero of=/mnt/swap bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 69.7764 s, 61.6 MB/s

2.使用快文件创建分区

admin@ubuntu:~# mkswap /mnt/swap 
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=e7b06ac4-79c4-4d01-a5b3-6bda61866939

3.启用swap分区

admin@ubuntu:~# swapon /mnt/swap

4.查看内存状态

admin@ubuntu:~# free -h
             total       used       free     shared    buffers     cached
Mem:          7.8G       7.7G       131M        22M       3.9M       1.8G
-/+ buffers/cache:       5.8G       2.0G
Swap:         4.0G         0B       4.0G

5.设置开机自动挂载

admin@ubuntu:~# vim /etc/fstab

6.配置swap使用策略

# echo "vm.swappiness = 50"> /etc/sysctl.conf
# sysctl -p

 对于swap争议

使用swap分区可以避免内存严重不足时的进程僵死现象;只要内存足够,就不会使用swap频繁读写。

一些进程是按需加载进物理内存的,比如jenkins构建,在构建进程停止后,jenkins服务占用的内存数据会被写入交换分区。下次构建时再移入物理内存。

原文地址:https://www.cnblogs.com/zhengwenqiang/p/8678424.html