我在 Ubuntu 电脑上运行一个复杂的 Matlab 程序。它需要加载几个 .MAT 文件,每个文件占用几 GB 的磁盘空间,占用更大的 RAM。我知道可以运行这个程序 - 我的同事有一台 32 GB RAM 的 MacBook,几乎从未见过它崩溃 - 但我的塔式电脑有 128 GB RAM 和 Ubuntu 22.04,尚未成功运行它,总是因内存不足而崩溃。
我并不担心其他程序会占用大量内存。当 Matlab 加载数据和处理数据时,内存全部分配给 Matlab。
一个明显的措施是增加交换文件的大小;我将其从 2 GB 增加到 32 GB。但是,这似乎还不够。令我困惑的是,RAM 已填满 99.6% 并徘徊在那里,而交换空间却保持原样,保持在 26% 左右,一分钟内没有太大变化,直到程序最终崩溃。
可能是我把 swappiness 调得太低了——我看到有人建议把它从默认的 60 调低到一个更低的值,所以我把它调成了 5。后来我把 swappiness 调到了 15,但也许我应该把它调得更高?除了 swappiness 之外,我还看到了关于缓存压力的提及,但我想让缓存压力尽可能高,所以默认的 100 似乎不错。
我还遗漏了什么吗?