交换似乎未使用

交换似乎未使用

(我目前使用的是Ubuntu 14.04 LTS,GNOME环境)

太长了;博士如何强制进行更多内存交换(交换量已达到 100)?

我最近经历了很多系统冻结/崩溃的情况。通常在访问繁忙的网站时。这种情况已经发生了太多次,我已经在我的 tty 上加载了 htop,所以我可以切换到它并终止我的浏览器(因为 GUI 没有响应)。然而,有时我需要使用 REISUB。

我认为 GNOME 可能比 Unity 工作得更好,因为我的 Debian 系统没有任何问题,而且在一定程度上也确实如此,但我的内存仍然很高,并且出现冻结现象。

我查看了free -m今天的情况,发现我的交换显示已使用 0。输出:


             total       used       free     shared    buffers     cached
Mem:          1821       1673        148        221         40        643
-/+ buffers/cache:        989        832
Swap:         1933          0       1933

我临时将值交换到 100 ( sudo sysctl vm.swappiness=100)。结果仍然相同(即使在运行到接近最大系统内存使用量后仍使用 0)。

我看了这个答案:

如何查看系统是否正在交换? 不幸的是,当我写这篇文章时,我的系统进入更新,并且我的包被锁定,所以我无法安装这个(sar),也不确定它是哪个包的一部分,以便提供另一个输出。

我查看了 fstab,并且我的交换分区正在正确使用。

# swap was on /dev/sda3 during installation
 UUID=10fdfed2-1fde-4d9f-a8f1-3d2376b0ffcc none            swap    sw              0       0

我在 Debian 操作系统中使用共享交换分区(双引导、单独分区、共享交换)。但分区没有锁定,我快速执行了swapoff ...swapon ...、 ,swapon -s看看它是否可以识别我的交换并开始交换。它似乎仍然处于低交换状态(84 万岁),但我的内存使用率为 90% 以上。 Chromium 的内存使用量约为 13%,GNOME 的内存使用量为 17%。

我不在乎我是否被迫变得缓慢,但我不能被迫进入完全系统冻结(无法访问 TTY,无法执行Ctrl+ Alt+ Backspace,只能Alt+ SysReqR,E,I,S,U,B )

我在使用 12.04 LTS(预打包)时遇到了同样的问题,但最近升级到了 14.04 LTS。

底线:如何强制进一步交换和/或在进程导致系统稳定性问题之前控制进程?

(旁注:Debian 工作正常,除了鼠标触摸板问题)

输出dmesg | grep error

[   26.646691] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro

这是Ubuntu分区。除 sda7 之外的 Debian 分区上也出现同样的错误。

答案1

请阅读这篇文章堆栈溢出 您有 643 个缓存内存和 148 个空闲内存 ~ 800 mb。当缓存内存和空闲内存的百分比相等时,将使用您的交换文件

答案2

/etc/sysctl.conf 增加虚拟机交换性=50

相关内容