当“免费”交换空间几乎用完时,在Ubuntu Web服务器上是什么意思?


 www〜:免费
             caching总共使用的空闲共享缓冲区
 Mem:2048 1848 199 0 21 274
 -  / + buffers / cache:1552 496
交换:4095 4086 9

在运行apache / nginx / MySQL的Ubuntu生产networking服务器上,并为很多networking客户提供服务,看起来我们的免费交换内存空间几乎全部用完。 这是什么意思? 我知道我们应该增加更多的RAM /内存到服务器上,但是我想知道如果当前的使用量持续下去会有多糟? 我们要等到这个周末,当交换空间用完时服务器会崩溃吗? 研究停止? 运行真的很慢?

这意味着你的内存不足。 如果由于磁盘活动不稳定而不能正常运行,那么你可能有一些已经分配了内存但没有使用它的进程,然后就被换出了。 如果耗尽,系统将开始有点随机杀死进程(searchOOM杀手关于OOM究竟是如何select死亡的大量讨论)。

那么这个问题有哪些解决方法?

使用像top这样的命令来弄清楚所有内存的使用情况。 确定内存猪实际上是否需要内存,或者是否是一个错误。 如果这是一个错误,请尝试并追踪修复。

如果你无法承受中断增加内存,你可能会检查是否可以承受短暂的停电,并杀死/重新启动该过程。

用Linux可以创build交换文件 ,交换不需要在自己的分区上。 所以如果你想/需要添加更多的交换,你可以很容易地做到这一点,无需重新启动。