前言
在运行一些代码编译或者clang-format会占用大量的内存,此时可能会出现电脑卡死的情况,在ubuntu中可以通过增加交换内存来临时解决这个问题,相对于硬件改动成本更低,但是性能不如物理内存。
实践
- 查看当前的交换内存大小
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 4G 85M -2
使用上面的命令可以查看当前的交换内存大小,可见我的交换内存大小为4G,实际操作下来发现4G的交换内存肯定是远远不够的。
- 查看计算机物理内存大小
$ sudo free -h
总计 已用 空闲 共享 缓冲/缓存 可用
内存: 15Gi 14Gi 177Mi 339Mi 957Mi 462Mi
交换: 4Gi 85Mi 3.2Gi
当前的物理内存为16G左右,那我们的交换内存不能高于物理内存,所以只能设置小于等于16G。
- 增加交换内存
- 关闭系统交换分区
sudo swapoff -a
- 新建一个swap文件
sudo fallocate -l 14G /swapfile
- 设置拥有者可以读写权限
sudo chmod 600 /swapfile
- 使用
mkswap
工具设置Linux swap
区域
sudo mkswap /swapfile
- 激活
swapfile
文件
sudo swapon /swapfile
- 使上面的步骤永久生效,修改
/etc/fstab
,在文档最后加上/swapfile swap swap defaults 0 0
sudo vim /etc/fstab
- 再次查看交换内存大小,下面两种命令都可以使用
$ sudo swapon --show
$ sudo free -h
Reference:
https://zhuanlan.zhihu.com/p/573352835?utm_id=0