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

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

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

  • 音乐在合辑最精彩的部分跳过或完全停止
  • 鼠标点抖动或完全停止响应

编译完成后,大多数情况下一切都会恢复正常,但有时电脑会完全冻结,我不得​​不硬重置它。这是怎么回事?Linux/Ubuntu/Unity 不是设计为优先考虑 UI 线程吗?它如何允许 Java 占用 100% 的 CPU 资源?有什么方法可以限制这种情况吗?

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

答案1

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

不过,我同意你的观点,UI 不应该受到如此严重的影响。

关于您的系统无响应

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

记忆

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

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

关于全面冻结

这真的不应该发生,这是一个错误,你应该填补一个错误ubuntu 错误追踪器

但在修复 bug 之前,我认为你应该更新你的系统,包括安装最新的 HWE 内核和 Xorg(参见这里)。

相关内容