有什么办法可以防止 Ubuntu 16 在 CPU 负载过重的情况下冻结?

Nil*_*zor 2 performance unity java

我是一名经常使用 Android Studio 的开发人员。当它编译 Java 类时,它会启动 4 个以上的 CPU 密集型工作线程。当这种情况发生时,我经常在后台播放音乐。这是发生的事情:

  • 音乐在汇编的最密集部分跳过或完全停止
  • 鼠标点抖动或完全停止响应

大多数情况下,编译完成后事情会正常化,但有时计算机会完全冻结,我必须对其进行硬重置。怎么来的?Linux/Ubuntu/Unity 不是为了优先考虑 UI 线程而设计的吗?它是如何让 Java 100% 占用 CPU 资源的?有什么办法可以限制这个吗?

免责声明:我不太了解操作系统代码。

pim*_*pim 5

linux内核非常擅长管理CPU,所以我认为你的问题与IO有关。编译时 CPU 被 100% 使用是完全正常的,这就是您付出的代价。

但是,我同意您的看法,UI 不应该受到如此严重的影响。

关于您的系统无响应

我认为您应该尝试ionice降低android studio的IO优先级。

记忆

也有可能您的系统内存不足,并开始使用交换。top可用于查看交换使用情况。这可以通过减少 RAM 使用量、添加 RAM 或最终调整系统的swappiness来解决。

不幸的是,我不是 Android Studio 的用户,我无法帮助它的配置。

关于完全冻结

这真的不应该发生,这是一个错误,您应该填写ubuntu bugtracker上的错误

但在填补 bug 之前,我认为您应该更新您的系统,包括安装最新的 HWE 内核和 Xorg(请参阅此处)。