内存不足够怎么办,swap空间来相伴

Posted MrCharles

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存不足够怎么办,swap空间来相伴相关的知识,希望对你有一定的参考价值。

工作研究中经常需要intensive的模型训练,但是目前可用的两台机器都是32GB的内存搭配24GB显存的RTX3090,因此使用起来经常发现内存不足够,进程会被系统直接kill。

可是我们又想把所有的数据集加载到内存中,加快我们模型的训练速度,不然一边读取数据一边训练模型,GPU使用率非常低,训练的时间会很久。

经过摸索,发现增加swap空间是可行的。swap交换空间只有在内存用尽的时候才会被使用到。虽然swap使用的是硬盘来代替内存空间,速度会慢非常多,但是只要数据能够加载到内存之中,多一点点数据在swap空间也是没问题的,不会显著影响系统训练的性能。

那么怎么增加swap了,非常简单:

先看目前的内存空间:

free –m

这个命令可以看到目前使用的内存,包括swap,结果:

              total        used        free      shared  buff/cache   available
Mem:          31Gi       894Mi       12Gi       1.0Mi        2Gi       20Gi
Swap:         2.0Gi       303Mi       1.7Gi

判定新交换文件的大小,将大小乘以1024来判定块的大小。例如,大小为64MB的交换文件的块大小为65536,在 shell 提示下以根用户身份键入以下命令,其中的 count 等于想要的块大小。

sudo dd if=/dev/zero of=/home/swap bs=1M count=30240

设置交换文件:

sudo mkswap /home/swap

启动交换分区文件

sudo swapon /home/swap

再执行一下free -h就可以看到swap增加了30GB

训练起来就不会被kill掉了。

以上是关于内存不足够怎么办,swap空间来相伴的主要内容,如果未能解决你的问题,请参考以下文章

内存不足够怎么办,swap空间来相伴

内存不足够怎么办,swap空间来相伴

linux中对swap分区的管理

swap分区的创建

Linux下设置Swap后, 重启后设置失效 怎么处理?

Linux下swap耗尽该怎么办?如何释放swap