linux出现out of memory是啥问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux出现out of memory是啥问题相关的知识,希望对你有一定的参考价值。

有两种方法可以解决这个问题
1、如果可能,请升级到64位系统。
这是最好的解决办法,因为所有的内存都将成为low memory。如果你在这种情况下耗尽了low memory,那就真的是out of memory了。
2、如果受限于必须使用32位系统,最好的解决办法是使用hugemem内核。
这种内核以不同的方式分割low/high memory,而且在大多数情况下会提供足够多的low memory到high memory的映射。在大多数案例中,这是一个很简单的修复方法:安装hugemem kernel RPM包,然后重启即可。
如果运行hugemem内核也不可能,你可以尝试将/proc/sys/vm/lower_zone_protection 的值设置为250甚至更多。这将让内核愿意保护low memory,从而在分配内存时多考虑从high memory分配。据我所知,此选项从2.6.x内核才开始可用。必要的是,您可能需要通过一些实验来找到您系统环境中最适合的值。可以使用下面方法快速的设置和检查改值:
# cat /proc/sys/vm/lower_zone_protection
# echo "250" > /proc/sys/vm/lower_zone_protection
在 /etc/sysctl.conf 中加入设置,以便启动就生效:
vm.lower_zone_protection = 250
作为最后的努力,你可以关闭oom-killer。这个选项可以导致系统挂起,所以请小心使用(风险自负)!
查看当前oom-killer的状态:
# cat /proc/sys/vm/oom-kill
关闭/打开oom-killer:
# echo "0" > /proc/sys/vm/oom-kill
# echo "1" > /proc/sys/vm/oom-kill
当进程该被oom-killer杀死却没有被杀死时,相关信息会记录到 /var/log/messages:
"Would have oom-killed but /proc/sys/vm/oom-kill is disabled"
参考技术A 就是物理内存的剩余大小不足,Linux的一个自我保护措施就是当物理内存不足时,把接下来将要启动的程序kill掉,然后提示out of memory,从而防止物理内存耗尽而系统崩溃。所以当物理内存不足时,一些程序就启动不了(直接被kill掉了),解决办法是设置合适的swap内存交换空间(Linux的swap内存交换空间就相当于Windows系统的“虚拟内存”的设置),或者将不需要运行的进程用kill命令杀死从而释放内存空间,推荐还是设置swap吧。本回答被提问者采纳 参考技术B 简单的就是说内存不足,看一下有哪个程序占用最大,kill掉

出现 CUDA out of memory 的解决方法

目录

1. 问题所示

运行这段程序的时候出现如下错误:

RuntimeError: CUDA out of memory. Tried to allocate 1.38 GiB (GPU 0; 7.80 
GiB total capacity; 5.94 GiB already allocated<

以上是关于linux出现out of memory是啥问题的主要内容,如果未能解决你的问题,请参考以下文章

用汇编语言编写程序的时候运行出现out of memory是啥回事?

Linux OOM(out of memory)

开机时出现Out of memory是啥意思?

CF游戏出现out of memory 怎么解决

ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory

ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory