交换似乎没有被使用

No *_*ime 12 partition ubuntu memory swap smartctl

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

tl;dr如何强制进行更多内存交换(swappiness 已经达到 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
Run Code Online (Sandbox Code Playgroud)

我对 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
Run Code Online (Sandbox Code Playgroud)

我在 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
Run Code Online (Sandbox Code Playgroud)

这是 Ubuntu 分区。除 sda7 外,Debian 分区也有同样的错误。

小智 -4

/etc/sysctl.conf中 增加vm.swappiness =50

  • OP 当前将 swappiness 设置为 100,因此将其更改为 50 将是*减少*。 (6认同)