ubuntu 物理内存爆炸而不使用虚拟内存的问题

avatar
作者
猴君
阅读量:5

ubuntu 物理内存不足时有时候会不去使用虚拟内存,让虚拟内存空闲,而直接关闭占用内存的进程,如果在进行模型测试或训练时,就会导致训练或测试进程被杀死。

1. 修改 swappiness:

cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=100

sudo sysctl -p

如果需要修改永久生效:

sudo vim /etc/sysctl.conf

vm.swappiness=100

sudo sysctl -p

2. 修改 systemd-oomd:

查看 ommd 日志

grep -i oom /var/log/syslog

修改 ommd: 

vim /etc/systemd/oomd.conf

[OOM]
SwapUsedLimit=90%
DefaultMemoryPressureLimit=90%
DefaultMemoryPressureDurationSec=120s

sudo systemctl restart systemd-oomd.service

3. 如果是swap文件不够大就创建swap文件,要多大创建多大的,不过如果要是比物理内存大好几倍,那程序可能会很慢,但至少能运行下去。

bs 的值通常设置为 1M,但如果用的是 SSD,可以使用更大的 bs,比如这里使用 4M,提高性能,下面的命令是创建 32G 的虚拟内存。

sudo swapoff -a

sudo dd if=/dev/zero of=/swapfile bs=4M count=8192
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!