内存不足够怎么办,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掉了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MrCharles

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值