Ubuntu增加swap交换空间
问题描述
我在训练模型的过程中,经常跑着中途发生了can not allocate memory
的异常,从而使程序中断,其中发现是由于swap空间设置太小,导致交换内存溢出。因此本文介绍增加swap空间的方法。
查看当前系统的swap大小
1 | free -m |
m 是以兆为单位, g是以GB为单位, 默认是kb
如下图,当前系统只有1G的交换空间:
创建一个swap文件
swap交换空间其实就是硬盘上一个特定的文件,只不过这个文件只有内存在读写,比较大些。
1 | mkdir /home/roo/swapfile |
mkdir /home/roo/swapfile
是先在/home/roo目录下创建了一个名为swapfile的文件夹
cd 进入swapfile文件夹, 然后创建一个大小为61G的,名为swap的空文件。
命令解释:
/home/roo/
可以更换为自己的路径bs
为单位,默认为kb, 如设置为1024,则代表1Mcount
为数量,扩增大小为$count \times bs$
转换swap文件
将生成的文件转换成swap类型的文件
1 | sudo mkswap -f swap |
如下图:
激活swap文件
1 | sudo swapon swap |
卸载的话使用 swapoff
1 | sudo swapoff swap |
最后再次使用free查看,如下图:
永久生效
虽然交换空间到此已经扩展成功了,但是电脑重启的话,还是会恢复默认的swap大小。如果要一直使用这个swap,要把它写入/etc/fstab文件中。
编辑文件
1 | sudo nano /etc/fstab |
加入以下内容(路径根据自己设置的修改)
1 | /home/roo/swapfile/swap none swap defaults 0 0 |
如下图:
推荐swap大小
以下列出Ubuntu系统根据RAM大小推荐设置的swap大小:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yuan!
评论