出于某种原因,我的交换使用量在使用几个小时后将达到 100% 的容量峰值。然后我的界面将冻结,之后我必须等待 20 分钟才能移动鼠标。
当前可疑的罪魁祸首是 Chromium 或 XChat,因为在发生此问题时,它们始终存在。我更倾向于 XChat,因为我之前注意到当我点击与 XChat 相关的内容时,冻结就开始了。
我注意到的其他事情之一是 Swap 的使用会随着时间的推移而增加。
我也打开了 Emesene 和 Dropbox,但我怀疑它们是问题的根本原因,因为它们只是在界面冻结时空闲。
重新启动目前是我目前唯一的解决方法,(无论如何我都可以找到......)但如果界面没有完全停止工作,在这种情况下将是硬重置。同样,当交换区已满时,硬盘灯常亮。

编辑:找到了一些额外的信息。这是输出free -m:
total used free shared buffers cached
Mem: 3760 3653 107 0 4 2638
-/+ buffers/cache: 1010 2750
Swap: 3890 2643 1247
Run Code Online (Sandbox Code Playgroud)
如您所见,物理内存由于某种原因被缓存,而空闲内存相对较小。我认为这是导致交换使用的原因。
我需要修复此问题,因为我目前需要每 2 天关闭一次。
谢谢
更新:根据请求 /etc/fstab
UUID=20fab2bb-2424-40b0-ae2b-74693ea83f45 / ext4 errors=remount-ro,user_xattr 0 1
# swap was on /dev/sda5 during installation
UUID=e04c1c74-9b99-4f07-8d3c-f0d6e8d3c465 none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
更新:
ps -aux 信息
USER PID %CPU %MEM VSZ …Run Code Online (Sandbox Code Playgroud) 系统 Ubuntu 14.04
我想将我的 swappiness 从默认的 60 更改为 10。根据这个答案https://askubuntu.com/a/103916/71679我需要以 root 身份登录并编辑/proc/sys/vm/swappiness并添加或编辑到vm.swappiness = 10
以 root 身份打开该文件时,我在添加vm.swappiness = 10并尝试保存时只看到数字 60我收到错误写入 /proc/sys/vm/swappiness: Invalid argument
如果我只是将 60 更改为 10,则文件可以毫无问题地保存,我会检查发生的更改,cat /proc/sys/vm/swappiness它显示发生了更改
通过以 root 身份编辑此文件,我假设更改将保持永久,但一旦我关闭并重新启动,默认值将恢复为 60。为什么更改不保持永久?重启后文件写回 60 是什么意思?
最近两天突然出现 - 我的铬/铬浏览器不断因 aw snap 错误而崩溃/firefox 可以正常工作。我认为这可能与我上次通过扩展遇到的问题有关(因为我此时遇到了他们扩展的已知错误)。从那以后,我重新启动/禁用了所有扩展程序并再次测试 - 仍然不断发生同样的问题!检查了论坛,在 dmesg 中确认我的内存不足(我使用的是16GB 的Dell XPS 13,几乎没有打开任何选项卡):
[20968.163307] Out of memory: Kill process 11700 (chromium-browse) score 304 or sacrifice child [20968.163312] Killed process 11700 (chromium-browse) total-vm:2017292kB, anon-rss:123152kB, file-rss:84092kB
Run Code Online (Sandbox Code Playgroud)
添加 apt-cache 策略:
chromium-browser:
Installed: 55.0.2883.87-0ubuntu0.16.04.1263
Candidate: 55.0.2883.87-0ubuntu0.16.04.1263
Version table:
*** 55.0.2883.87-0ubuntu0.16.04.1263 500
500 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
500 http://archive.ubuntu.com/ubuntu xenial-security/universe amd64 Packages
100 /var/lib/dpkg/status
49.0.2623.108-0ubuntu1.1233 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
Run Code Online (Sandbox Code Playgroud)
然后,我按照以下说明将交换率从 60 修改为 10: 如何配置交换率? 仍然有同样的问题......阅读另一个关于扩展我的 minvmfreekbytes 的链接 - 我将它增加到 160mb …
在运行 Virtual Box 时,我的系统经常访问硬盘驱动器并且运行缓慢。
当我使用 System Monitor 检查系统资源时,它显示处理器使用率为 15%,RAM 使用率为 65%,Swap 使用率约为 50%。
我的问题是为什么 ubuntu 在有足够的主内存可用时需要使用 Swap?
编辑 -
free命令的输出-
total used free shared buffers cached
Mem: 4075908 3056931 1018977 0 1944 308408
-/+ buffers/cache: 2746579 1329329
Swap: 4139004 1862551 2276453
Run Code Online (Sandbox Code Playgroud)
注意 -
在我升级12.04 Precise到12.10 Quantal. 现在它太慢了,几乎没用。
经过 2 周的尝试,失败,再试,仍然失败,我终于使 Ubuntu 稳定且可运行。
我的硬盘很旧而且很慢,但我有过多的 RAM(16 GB 2133 mhz),所以我在考虑使用该 RAM 来加快获取速度。
如何在运行之前手动缓存程序的二进制文件?我知道预加载,但这不是我想要的,我希望能够将进程的二进制文件锁定在内存中,这样它就无法退出,我想手动执行此操作,最好使用 GUI,但我没有问题带终端。
我不想运行它,只需在内存中加载二进制文件和依赖项。
你知道有什么可以做到的吗?
有时当我使用 Lubuntu 17.10 - 完全更新时,我的 RAM 使用率达到 100%,系统变得无法使用,如果我“幸运”,我可以每 10 秒移动我的鼠标大约 1 个像素......这几乎不可能做到甚至关闭应用程序。然后我被迫使用笔记本电脑上的电源按钮。
我使用的是 2013 年末的 macbook pro 视网膜,安装了几乎全新的 Lubuntu 17.10。
到目前为止,它发生在我打开 spyder3 并且我加载了太大的文件时。当我在 firefox 中单击此链接时也发生了这种情况(警告:可能会崩溃)http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/SNA_TABLE1。我什至在达到 100% 使用率之前关闭了选项卡,但它只是持续到 100% 并崩溃了。我只注意到是因为我关闭了选项卡并在 spyder3 中看到了 RAM 使用情况(我没有运行任何 python3 脚本)。
有没有办法防止这种情况?也许确保特定数量的 RAM 只能由操作系统使用?
从交换过程的外观来看;
ubuntu:~$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sdc2 partition 4104188 0 -1
ubuntu:~$
Run Code Online (Sandbox Code Playgroud)
从顶部:
ubuntu:~$ top
top - 09:35:37 up 9:07, 9 users, load average: 1.43, 0.80, 1.09
Tasks: 206 total, 3 running, 202 sleeping, 0 stopped, 1 zombie
Cpu(s): 4.4%us, 2.2%sy, 0.0%ni, 50.5%id, 42.5%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 3088492k total, 2619440k used, 469052k free, 238536k buffers
Swap: 4104188k total, 0k used, 4104188k free, 1769788k cached
Run Code Online (Sandbox Code Playgroud)
两者都说实际上正在使用零交换。
我正在使用具有 64 位功能的 core2 duo 戴尔笔记本电脑,该笔记本电脑带有 4gigs 内存,在持久的实时 USB 记忆棒上运行 32 …
我有一个运行 Ubuntu 16.04、64 GB RAM 的 AWS ec2 实例,并配置了一个 8GB 的交换文件。在每晚将备份数据从该实例的 EBS 卷同步到 S3 存储桶的批处理过程中,交换内存几乎被 100% 使用,但主内存仍然有 10-15 GB 范围内的充足可用空间。
这是交换默认值:
$ cat /proc/sys/vm/swappiness
60
Run Code Online (Sandbox Code Playgroud)
令人担忧吗?如果是,我应该通过使用更大的交换文件来添加更多交换空间还是选择交换分区?
以前,在运行 Ubuntu 14.04 的台式计算机上,我有 4GB 内存,我认为应该足够了。但是,打开一段时间后,我的计算机似乎变慢了。我的 Gnome 面板中有一个系统资源监视器应用程序,我认为它代表可用的 RAM (?)。它显示深绿色区域为“内存”,浅绿色区域为“缓存”。“缓存”会慢慢增长,直到填满整个图,然后程序加载会变慢,或者需要一段时间来切换程序。
我可以用这个命令在一定程度上缓解这个问题,但最终计算机缓存再次填满,所以它只是一个创可贴:
sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
Run Code Online (Sandbox Code Playgroud)
所以,我想我会得到更多的内存,所以我用一个 8GB 的内存条替换了一个 2GB 内存条,现在我有 10GB 内存。
而我的“缓存”仍然缓慢地最大化,结果我的电脑变慢了。此外,有时当我第一次启动和登录时,计算机开始时“缓存”已达到最大值。但并非总是如此,我不知道是否存在确定其发生原因的模式。
为什么 Ubuntu 使用了这么多缓存?10GB 对 Ubuntu 来说还不够吗?
这是我的系统监视器在 Gnome 面板中的样子。中间方块显示 RAM 使用情况。浅绿色区域是“缓存”:

这是我的内存和交换历史记录,它似乎不包含任何有关“缓存”的信息。我意识到此时我并不完全清楚“缓存”和“交换”之间的区别:

我的平板电脑配备 4 GiB RAM 和 SSD 128 GiB,运行 LUbuntu 18.04。
当内存使用量达到大约时。3.9G,系统挂起。只有鼠标指针移动有滞后。按 Ctrl+Alt+Fx 没有反应。
swapon据报告为 8 GiB:
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 8G 0B -2
$ sudo sysctl vm.swappiness
vm.swappiness = 60
$ uname -r
4.15.0-55-generic
Run Code Online (Sandbox Code Playgroud)
为什么内存实际上没有交换?如何启用交换?
我是一名经常使用 Android Studio 的开发人员。当它编译 Java 类时,它会启动 4 个以上的 CPU 密集型工作线程。当这种情况发生时,我经常在后台播放音乐。这是发生的事情:
大多数情况下,编译完成后事情会正常化,但有时计算机会完全冻结,我必须对其进行硬重置。怎么来的?Linux/Ubuntu/Unity 不是为了优先考虑 UI 线程而设计的吗?它是如何让 Java 100% 占用 CPU 资源的?有什么办法可以限制这个吗?
免责声明:我不太了解操作系统代码。
我想将 swappiness 设置为最小值,以便 Ubuntu 16.04 仍然可以运行而不会崩溃。
$ ls -alt /var/crash
drwxrwsrwt 2 root whoopsie 4096 Jul 26 14:12 .
-rw-r--r-- 1 root whoopsie 1928 Jul 26 14:12 virtualbox-4.3.0.crash
-rw-r----- 1 some_user whoopsie 3978513 Jul 26 14:02 _usr_bin_compiz.1000.crash
drwxr-xr-x 15 root root 4096 Aug 8 2016 ..
Run Code Online (Sandbox Code Playgroud) 为了尝试解决问题,我将 swappiness 设置为尽可能低,即 0,并且交换仍在使用。为什么?
运行free -m给出:
total used free shared buff/cache available
Mem: 484 241 8 58 235 134
Swap: 1023 97 926
Run Code Online (Sandbox Code Playgroud)