如果 RAM 用完并交换,会发生什么?

cat*_*nts 6 mysql memory swap

在具有 32 演出内存的机器上运行 MySQL。Swap 已满 99%,还有大约 200 MB 的可用 RAM。MySQL当然是罪魁祸首。当 RAM 和交换区都被完全填满时会发生什么?谢谢!

Luc*_*man 12

9/10 OOM 杀手会来杀掉内存消耗最大的程序。否则你的系统会崩溃。

我假设你在 Linux 上。


Dan*_*man 5

这取决于操作系统,但是当您真正用完时,某些东西就会消失。更具体地说,对操作系统说“请给我更多内存”,操作系统说“不”。

(这可能是由于只是接触了一些已经被告知已分配的内存,导致页面在写时复制,所以它不像“调用内核内存分配器”那么简单)

从技术上讲,该过程可以处理这些故障并恢复,但实际上它会导致崩溃。

Linux 努力猜测杀死什么是好的候选者,我认为 Windows 也是如此,在你完全达到那个状态之前,尽管 - 稍微更干净地杀死一些东西,以便释放内存。