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

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 07:40:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 07:40:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 07:40:03       58 阅读
  4. Python语言-面向对象

    2024-07-14 07:40:03       69 阅读

热门阅读

  1. Unity宏和编辑器

    2024-07-14 07:40:03       21 阅读
  2. (C++栈与队列02) 栈的应用 单调队列

    2024-07-14 07:40:03       27 阅读
  3. 基于物联网的智慧校园建设与发展

    2024-07-14 07:40:03       32 阅读
  4. DNS是什么

    2024-07-14 07:40:03       21 阅读
  5. Bug及优化

    2024-07-14 07:40:03       19 阅读
  6. systemverilog的关联数组

    2024-07-14 07:40:03       27 阅读
  7. 最新得物data参数加密分析与响应数据解密

    2024-07-14 07:40:03       19 阅读
  8. JVM OutOfMemoryError异常模拟

    2024-07-14 07:40:03       16 阅读
  9. 2024.7.13刷题记录-牛客小白月赛98(未完)

    2024-07-14 07:40:03       22 阅读
  10. 代码随想录第五十五天打卡

    2024-07-14 07:40:03       24 阅读