在 Ubuntu 20.04.3 中运行 matlab 时,终端中显示“Matlab 已终止”消息。请帮我解决这个问题。
答案1
这个消息是来自操作系统,来自可怕的 OOM-killer,即“内存不足杀手”。
几年前,操作系统非常重视内存分配职责。当应用程序分配内存时,操作系统会分配内存。如果没有足够的内存来满足请求,则会拒绝请求。有些操作系统仍然以这种方式工作,但 Linux 通常不会。
Linux 通常默认配置为以航空公司处理预订的方式处理内存分配。它“尊重”比它实际可以提供的更多的分配,其依据的(正确)理论是,并非所有分配都会被实际使用。这种做法一直很好,直到它不再有效。
在飞机上,超额预订的乘客不会被赶下飞机。在 Linux 上,情况正是如此:当内存真的耗尽时,死神(OOM 杀手)会选择一个受害者。在你的情况下,受害者是 Matlab。你真幸运。你收到的不是免费机票,而是一条消息。
为了击败 OOM-killer,改变过度使用内存内核设置为 2。
不幸的是,该解决方案是一种后卫行动。Linux 的影响导致许多应用程序依赖过度使用的内存,并在内存分配方面肆意浪费。当内存不可用时,这些应用程序会使用大量内存。另一方面,它具有实际运行确实启动的程序的优点,并且不会终止被任意选择为 OOM 目标的正在运行的进程。
为了在现有机器上可靠地运行 Matlab 以解决您的问题,您可能需要更多 RAM。作为权宜之计,您可以增加交换空间,这会增加虚拟的记忆,这就是您所需要的。