当Linux OS内存不足且没有交换时会发生什么


23

当Linux OS的RAM不足并且没有可用的交换时会发生什么?


15
那就不好了 试想一下所有生命,就像您知道的那样,它瞬间停止运转,体内的每个分子都以光速爆炸。完全质子反转。
David

Answers:


36

当操作系统内存不足且没有交换空间时,它将丢弃干净页面。它不能丢弃脏页,因为它必须先将它们写到某处。如果没有足够的RAM来容纳工作集,这将导致抖动和性能下降。这是您真正想要交换的主要原因之一,因此操作系统可以更好地决定驱逐哪些页面。

如果不进行交换,则系统将在没有更多要清除的干净页面时立即用完虚拟内存(严格来说是RAM + swap)。然后它将不得不终止进程。

用完RAM是完全正常的。这只是使用 RAM 的不利因素。同样,将RAM用尽也可以称为“浪费RAM”。一旦所有RAM使用完毕,操作系统就可以明智地决定要在RAM中保留什么以及不保留什么。没有任何交换,它的选择就更少了。

无论是否进行交换,当逐出页面不足时,操作系统都会从拒绝允许需要内存(例如mmapfork)的操作成功开始。但是,有时这还不够,必须杀死进程。


4
+1“用完RAM是完全正常的。使用RAM只是一个消极的尝试。不用完RAM同样可以描述为“浪费RAM”。
TheTurkey 2014年

相关查询。您是否知道如果我尝试使Linux机器休眠并且没有足够的交换空间来存储瞬态数据会发生什么情况?它会停止休眠吗?
Prahlad Yeri'3

1
@PrahladYeri没错。如果没有暂挂分区,并且没有足够的可用交换空间来容纳RAM的内容,则无法休眠。
David Schwartz

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.