(我目前使用的是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