系统在内存已满之前进行交换

我的程序用matplotlib绘制了大量的行(〜200k),这非常贪心的记忆。 在绘图之前,我通常拥有大约1.5G的可用内存。 当我显示这些数字时,系统在大约600-800M空闲内存时开始大量交换。 当创build一个巨大的numpy数组时,这种行为是没有被观察到的,它只是瞬间获取所有可用的内存。 这将是很好,搞清楚这是一个matplotlib或系统问题。

我正在使用64位Arch Linux。

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

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

有一件事要考虑的巨大阵列是你没有触及它。 内存由内核默认分配。 尝试在这个庞大的数组中写入一些值,然后检查交换行为。