与此帖子类似Ubuntu 16.04 LTS Unity 经常崩溃/冻结,我的主要 Xubuntu 16.04 LTS (xfce) 安装在一台 PC 上 - 见下面的规格 - 带有 2GB 内存,偶尔会崩溃。这台 PC 运行浏览器和 Office,标配英特尔板载显卡,没什么特别的。它运行了数周,然后每隔几天就会发生一次。去年我至少遇到过 15 次,我认为这太多了,因为在我看来,它有很高的数据损坏风险。
我可以预见到这种情况,当我同时运行 TOR 和 Firefox 时,这种情况总是会发生。但当我看到它时,已经太晚了,无法做任何事情。有时鼠标会短暂冻结,我看到面板中的内存指示器已跳升至 90%。在我做任何事情之前,冻结加剧(通常超过 30 秒)。PC 非常繁忙,无法关闭任何窗口、调出任何工具,甚至无法登录控制台。我有时设法在 CTRL-ALT-F1 和 -F7 之间切换,但登录速度太慢,甚至在要求输入密码之前就超时了。我已经把它放了几个小时,但它从未恢复。我检查了几次日志,但没有从中得到任何提示。然而,在这种情况下,我不会相信日志,因为它们也会受到影响。
到目前为止,唯一的应对方法是硬重启电脑,因此存在数据丢失的风险。
我不知道根本原因是什么。我无法重现它。目前我的工作假设是系统陷入了某种缓存循环。其他帖子向我展示了类似的问题。他们试图找出事后发生了什么。
这不是我想要做的。我不想等到它再次发生时才开始在这里发布大量日志。我宁愿设置 PC,这样当它再次发生时我可以让它保持活动状态,我可以访问控制台来缩小问题范围。可以说我需要帮助来帮助我自己。
这是我的具体问题:假设我看到由两个浏览器同时运行导致的内存缓存问题,我该如何配置/设置系统以保护其内部工作?换句话说,下次发生这种情况时,在这两个应用程序运行严重破坏后,我有一个可以工作的文本模式控制台?
我正在考虑为特定应用程序指定最大内存使用量,这样应用程序会冻结,但系统不会冻结。显然,我正在寻找其他方法,以便在虚拟机中运行这两个应用程序。
我不指望一步一步的说明、关键字或要查找的链接会有很大帮助。
希望我能够清楚了解我需要什么。
谢谢你的帮助。
PS:我不认为它与我的特定 Ubuntu 风格 Xubuntu 相关。
参考帖子
电脑规格
4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
~$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 2 Core(s) per socket: 1 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 28 Model name: Intel(R) Atom(TM) CPU D410 @ 1.66GHz Stepping: 10 CPU MHz: 1666.583 BogoMIPS: 3333.16 L1d cache: 24K L1i cache: 32K L2 cache: 512K NUMA node0 CPU(s): 0,1 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm dtherm
答案1
拥有 2G RAM 和 1G 交换空间,这种行为是意料之中的. 将交换空间增加到最低 4G,或者同时增加 RAM 和交换空间。
您可能还希望调查该vm.swappiness
参数,因为您可以对其进行调整以影响交换发生的时间/方式。您可以在 AU 上或通过 Google 搜索找到大量信息。
答案2
您可能能够使用控制组 (cgroups) 来限制内存使用量。它们是 Linux 内核功能,允许您通过将进程置于特定 cgroups 中来限制进程的资源使用量(包括内存)。有一些文档在 Arch Linux 网站以及Ubuntu 服务器指南这可能会有帮助。