系统在内存已满之前交换

时间:2012-05-07 11:08:59

标签: python linux matplotlib archlinux

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

我使用的是64位Arch Linux。

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

要考虑巨大的numpy阵列,有一件事就是你没有碰到它。内核默认懒惰地分配内存。尝试在那个巨大的数组中写一些值,然后检查交换行为。