如何驯服Linux的响应能力,内存和页面调度
溢出的第一个问题=)... + 100赏金。直到现在我都没有想到我真正关心的东西: 我真的受够了Linux桌面响应能力的状态,例如http://brainstorm.ubuntu.com/item/85/-在低可用RAM或磁盘吞吐量高的情况下,系统速度减慢到一个爬行 ; 对于需要良好性能的应用程序来说,这绝对是可怕的。此外,UI完全没有响应。例如,将其与OS X进行比较,在OS X中,如果应用程序正在占用资源,则可以始终单击选项以强制退出它,而在Linux中,我什至无法alt-tab或切换桌面,甚至无法ctrl-alt-f1来获取资源。终端-可以,每次操作大约需要1-2分钟。 我使用gkrellm以便可以看到情况的发展。通常,内存利用率会很高,或者磁盘吞吐量会急剧上升。 这不是坏硬件,具有2.6GHz四核和4GB的800MHz DDR2 RAM(本来有6GB,但是由于硬件不兼容而无法与旧版本混合使用)。当我不可避免地获得更多的RAM时,这个问题可能会消失,但是我不认为这是问题的核心。我什至在不同的磁盘上有两个交换分区。 我觉得问题有三重: 占用大量内存的失控程序-必须为这些程序制定法律,并限制其程序 (例如,Chrome上的标签页,每个标签页为20-50MB,其中一些标签页可以使用数百MB) (例如其他程序,例如update-db和indexers,我不得不禁用它们并从cron中删除,因为它们每次运行都会使系统减慢抓取速度,等等) 在内核或总线争用中发生了某种可怕的事情,例如高磁盘吞吐量情况使整个系统缓慢爬行(也许是通过调出重要程序) 内核没有根据资源(例如内存,分页甚至处理器利用率)来对UI或重要程序进行优先级排序 投票转到: 因此,我正在寻找所有此类程序都无法使用的解决方案。特别是,我正在寻找一种解决方案,以使进程按比例降低速度,而系统和其他程序仍然完全不受影响且响应时间足够长,可以手动杀死某些内容。而且,窗口管理器进程(以及可能影响UI响应性的其他任何事物)在所有情况下都应响应。 特别地,我对/etc/security/limits.conf(man limits.conf)感兴趣,但是担心这只会给每个用户提供控制权,并且文件中的注释示例在描述或从何处开始时似乎都不太透明。我希望它能limits.conf奏效,但是即使它不起作用,或者它不是解决我的问题的合适方法,或者像我想要实现的那样精细,也不会感到惊讶。每个进程的名称limits.conf将是理想的,再次假设limits.conf有效。我很乐意尝试人们提供的limits.conf,以测试它是否有效,尽管我现在对所有解决方案都开放。 深入了解OS X如何保持如此出色的UI响应能力也可能很有用。 我已经调整了我/tmp和cache文件夹的位置tmpfs,并且通常磁盘利用率接近零。 模糊相关的主题: 内存过量使用 我认为无效的答案: swapoff (这仍然使记忆猪程序摆脱谋杀,并且如果记忆真的不好,系统将永久冻结-可以向任何建议进行调整的人提供支持,这些调整可以在交换之前针对OOM杀手,并针对特定程序) echo ?? > /sys/.../swappiness (没有明显的影响) nice (从未工作过) ionice (从未发现任何差异) selinux(程序不兼容似乎是一场噩梦) 实时linux,即可以中断内核(不想处理编译和更新自定义内核;如果已迁移到存储库中则可以) *