Answers:
这些是提供的一些简单指南,可帮助您了解应该使用哪种内核以及按照什么顺序进行测试以适合您的用例。
- 如果您的系统不需要低延迟,请使用-generic内核。
- 如果您需要低延迟的系统(例如,用于录制音频),那么请使用-preempt内核作为首选。这样可以减少延迟,但不会牺牲省电功能。它仅适用于64位系统(也称为amd64)。
- 如果-preempt内核不能提供足够低的延迟以满足您的需要(或您拥有32位系统),则应尝试-lowlatency内核。
- 如果-lowlatency内核不够用,那么您应该尝试-rt内核
- 如果-rt内核对您来说不够稳定,那么您应该尝试-realtime内核
因此,这取决于您将如何处理Studio发行版。对于大多数需要快速最终用户响应时间的用户来说,通用将很好,而对于其他需要进行专业视频编辑的用户来说,即使是简单的丢帧也无法实现实时内核。
有关更详尽,易于理解的博客文章,请阅读此链接
-preempt
,-rt
和-realtime
仁无不复存在
我是ubuntu粉丝链接的博客文章的作者:http : //sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/
那篇博客文章没有任何事实,只是理论上的。实际上,这就是它的工作方式:处理器更频繁地“停止”以查看是否有一些需要立即关注的进程。这意味着这些进程将在其他进程之前执行,因此您在编码时不会跳过帧,或者在鼠标单击和敌人死亡之间有巨大的延迟时间。这并不意味着所有进程都会更快结束:实际上,CPU浪费了更多时间来决定下一步将执行哪个进程,并进行上下文切换。因此,总执行时间更长,这就是为什么没人在Web服务器或数据库计算机上运行可抢占内核的原因。但是可抢占的300Hz(甚至1000Hz)内核最适合游戏服务器。
但是如今,处理器具有许多核心,因此当需要注意的进程很少时,可以轻松地将它们分配到其他核心上,而不必等待核心采用它。
(stackexchange需要我提供参考/个人经验:我是一位电子工程师,嗜血的noobgamer在http://www.gamezoo.it上拥有多个游戏服务器)。
因此,根据经验,我会说:如果您的处理器是强大的数字运算高频四核处理器,并且您通常在编码/解码/游戏(呵呵)时不打开大量网页,则可以只需尝试通用(或i686或amd64,如果存在的话)内核,并具有最高的吞吐量(即,处理器能够执行的原始数字处理)。如果您遇到问题(实际上应该是很小的问题),或者您的机器的功能不如市场顶尖产品强,请使用-preempt。
如果您使用的是只有一两个内核的低端计算机,请尝试-lowlatency。您也可以尝试-realtime,但是您会发现它倾向于阻塞进程,直到“实时”进程完成工作为止。我相信实时内核不是“普通”内核,而是已应用CONFIG_PREEMPT_RT补丁。我认为实时内核仅适用于那些必须在嵌入式系统上构建单个应用程序的人,因此普通的台式机用户不应真正受益,因为他们通常同时运行大量的应用程序。
最后,如果您想自己重新编译内核以拥有低延迟桌面,则最相关的内核选项是:
PREEMPT=y
和:
CONFIG_1000_HZ=y
要增加一些省电,您可以检查以下一项:
CONFIG_NO_HZ=y
从上面引用的文档中(http://www.versalogic.com/mediacenter/whitepapers/wp_linux_rt.asp)
文章说,对于硬实时内核而言,无响应或时限是最重要的属性,因此有时它们会延迟导致延迟的非关键活动,但对于低延迟或其他软实时内核,则尝试减少一般延迟,这在大多数情况下会有所帮助。由于减少了等待时间,因此系统看起来很快。仔细阅读文章。
-realtime
是实时的,那代表什么-rt
呢?什么回事的-preempt
内核?我要感谢gemue2010,他在解释它方面做得很好,但仍然无法解释所有内容。