内存不足够怎么办,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空间来相伴的主要内容,如果未能解决你的问题,请参考以下文章