618活动整了一个腾讯云服务器(2G内存,40G硬盘),想在云上编译vpp,在编译nasm时内存消耗太多导致系统oom
于是通过swap交换分区解决内存耗尽问题
命令如下
1、dd if=/dev/zero of=/file/swap bs=1024 count=8192000
/dev/zero是输入,/file/swap是交换文件位置,路径得存在,bs读/写的块大小,count是swap大小
2、mkswap /file/swap
把第一步的文件设置成swap交换区
3、swapon /file/swap
启用swap交换分区
4、echo “/file/swap swap swap defaults 0 0” >> /etc/fstab
设置成开机挂载交换区
5、vim /etc/sysctl.conf 将vm.swappiness = 0值改为50
这个值是如何使用swap分区值越大越积极使用swap分区,越小表示越积极使用物理内存,wappiness=50,表示内存使用率超过100-50=50%时开始使用交换分区,swappiness=0时不使用swapswappiness=100的时候表示积极使用swap分区,并把内存上的数据及时搬运到swap空间
6、sysctl -p
开始设置的4096000(4G),然后编译发现还是oom于是设置为8G,编译通过
swapoff /file/swap 删除分区