【ubuntu】增加swap容量

一、背景

当在编译大型工程或者运行大型应用时,如果内存大小不足,就会失败,此时可以通过设置swap空间来缓解一下问题,一定程度上解决问题

二、swappiness

swappiness是Linux内核的一个属性,其值代表了将运行内存数据交换到交换空间的策略,其值的范围为[0,100]

复制代码
# cat /proc/sys/vm/swappiness 
60

|---------|------------------------------------|
| val | desc |
| 60 | 表示内存使用率超过1-60%=40%时,开始使用交换分区 |
| 0 | 表示最大程度使用物理内存 |
| 100 | 表示最大程度使用swap分区,并及时将内存上的数据搬移到swap空间 |

复制代码
#临时调整
sudo sysctl vm.swappiness = 10 

#永久调整
sudo vim /etc/sysctl.conf

# 在末尾加上
# vm.swappiness=10

三、设置交换空间

1、移动交换分区内容

将现有swap移动到主内存,可能需要几分钟

复制代码
sudo swapoff -a

执行前后可以用free命令查看到变化

复制代码
# free -m
              total        used        free      shared  buff/cache   available
Mem:          31888        1132       29372         256        1383       30096
Swap:          2047           0        2047

# sudo swapoff -a

# free -m
              total        used        free      shared  buff/cache   available
Mem:          31888        1209       29259         263        1419       30012
Swap:             0           0           0

2、创建交换目录

复制代码
# sudo mkdir /swap_local
# cd /swap_local

3、添加交换文件

例如设置6G交换空间,注意bs段应小于物理内存大小,否则可能会报错

复制代码
# sudo dd if=/dev/zero of=swapfile bs=1G count=6
# sudo chmod 0600 ~/swap_local/swapfile 

4、激活交换空间

复制代码
# sudo mkswap swapfile
Setting up swapspace version 1, size = 6 GiB (6442446848 bytes)
no label, UUID=95ad1967-7df3-4c88-b2fd-b61db692b726

# sudo swapon ~/swap_local/swapfile
# free -m
              total        used        free      shared  buff/cache   available
Mem:          31888        1211       22929         270        7747       29953
Swap:          6143           0        6143

5、设置永久生效

复制代码
# sudo gedit /etc/fstab
# ~/swap_local/swapfile swap swap sw 0 0

【参考博客】

1\] [Linux 扩大swap的方法和配置使用交换分区的策略 - 新动弹计划](https://d.cellmean.com/p/9d55b65d4941 "Linux 扩大swap的方法和配置使用交换分区的策略 - 新动弹计划") \[2\] [【经验分享】Ubuntu如何设置swap交换_ubuntu swap-CSDN博客](https://blog.csdn.net/weixin_44904205/article/details/134529267 "【经验分享】Ubuntu如何设置swap交换_ubuntu swap-CSDN博客") \[3\] [ubuntu扩大/增加swap - 知乎](https://zhuanlan.zhihu.com/p/480903179 "ubuntu扩大/增加swap - 知乎")

相关推荐
不摆烂选手1 小时前
Ubuntu之Makefile入门
linux·ubuntu·makefile·正点原子imx6ull学习笔记
一大Cpp4 小时前
随笔1 认识编译命令
linux·opencv·ubuntu
开发小菜Go7 小时前
小菜Go:Ubuntu下Go语言开发环境搭建
linux·运维·ubuntu·vim
椰萝Yerosius15 小时前
Ubuntu Wayland启动腾讯会议并实现原生屏幕共享
linux·ubuntu·腾讯会议
信必诺1 天前
CMake —— 2、cmake在windows与linux下动态链接库编译与链接实例(附:过程代码与CMakeLists.txt)
windows·ubuntu·cmake·动态链接库·linux\
矛取矛求1 天前
VMware 安装 Ubuntu 全流程实战指南:从零搭建到深度优化
linux·运维·ubuntu
Hey! Hey!1 天前
Ubuntu桌面系统安装VirtualBox教程
linux·运维·ubuntu
盗理者1 天前
在win11 环境下 新安装 WSL ubuntu + 换国内镜像源 + ssh + 桌面环境 + Pyhton 环境 + vim 设置插件安装
ubuntu·ssh·vim
让子弹飞021 天前
15.1linux设备树下的platform驱动编写(知识)_csdn
linux·ubuntu·platform·stm32mp157·驱动的分离和分层
松树戈1 天前
Ubuntu挂载HDD迁移存储PostgreSQL数据
linux·ubuntu·postgresql