2

我的程序使用 matplotlib 绘制大量行(~200k),这对内存非常贪婪。在绘图之前,我通常有大约 1.5G 的可用内存。当我展示这些数字时,当仍有大约 600-800M 的可用 RAM 时,系统开始大量交换。例如,当创建一个巨大的 numpy 数组时,不会观察到这种行为,它只是瞬间占用所有可用内存。弄清楚这是 matplotlib 还是系统问题会很好。

我正在使用 64 位 Arch Linux。

UPD: swapiness 级别设置为 10。尝试将其设置为 0,正如 DoctororDrive 建议的那样,但同样的事情。但是,其他程序似乎可以在使用交换之前填充几乎所有内存。

4

2 回答 2

5

它开始交换,在 RAM 中留下一些空闲内存。您应该考虑设置Swappiness

于 2012-05-07T11:14:36.583 回答
1

对于庞大的 numpy 数组要考虑的一件事是您没有触摸它。默认情况下,内核会延迟分配内存。尝试在那个巨大的数组中写入一些值,然后检查交换行为。

于 2012-05-07T11:18:44.040 回答