我的程序使用 matplotlib 绘制大量行(~200k),这对内存非常贪婪。在绘图之前,我通常有大约 1.5G 的可用内存。当我展示这些数字时,当仍有大约 600-800M 的可用 RAM 时,系统开始大量交换。例如,当创建一个巨大的 numpy 数组时,不会观察到这种行为,它只是瞬间占用所有可用内存。弄清楚这是 matplotlib 还是系统问题会很好。
我正在使用 64 位 Arch Linux。
UPD: swapiness 级别设置为 10。尝试将其设置为 0,正如 DoctororDrive 建议的那样,但同样的事情。但是,其他程序似乎可以在使用交换之前填充几乎所有内存。