当前位置: 首页>>技术教程>>正文


为什么选择通用或实时的低延迟内核?

,

问题描述

安装Ubuntu Studio 12.04后,我发现它使用了低延迟内核。我搜索了为什么以及如何改回到实时或通用的。但看起来这部分Linux并没有被覆盖太多。

问:为什么选择通用或实时的低延迟内核?

PS:我已经阅读了this问题和this帖子的答案。

最佳解决方案

These are some simple guidelines provided to help you understand which kernel, and in which order, you should test to fit your use case.

  • If you do not require low latency for your system then please use the -generic kernel.
  • If you need a low latency system (e.g. for recording audio) then please use the -preempt kernel as a first choice. This reduces latency but doesn’t sacrifice power saving features. It is available only for 64 bit systems (also called amd64).
  • If the -preempt kernel does not provide enough low latency for your needs (or you have an 32 bit system) then you should try the -lowlatency kernel.
  • If the -lowlatency kernel isn’t enough then you should try the -rt kernel
  • If the -rt kernel isn’t enough stable for you then you should try the -realtime kernel

https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel

我想这取决于你会用你的演播室发行版来做什么。对于一些用户来说,通用将会很好,对于其他用户则不会。

FREEDOM SPEECH,请尝试阅读以下链接:http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/

次佳解决方案

我是由ubuntu粉丝链接的blogpost的作者:http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/

那篇博文没有提出任何事实,它只是理论。实际上,它的工作方式是:处理器”stops”更频繁地查看是否有某些过程需要立即关注。这意味着这些进程将在其他进程之前执行,因此编码时不会跳过帧,或者在鼠标点击和敌人死亡之间有很长的延迟时间。这并不意味着所有的进程都会很快结束:实际上,CPU正在失去大部分时间,决定接下来要执行哪个进程,并进行上下文切换。所以总的执行时间更长,这就是为什么没有人在web服务器或数据库机器上运行可抢占内核的原因。但可抢占的300Hz(甚至1000Hz)内核对游戏服务器来说是最好的选择。

但是现在处理器有很多内核,所以当需要关注的进程很少时,可以很容易地将其分配到不同的内核上,而不是等待内核采用它。

(stackexchange需要我参考/个人经验:我是一名电子工程师,在http://www.gamezoo.it的嗜血noobgamer获得几个游戏服务器)。

所以,作为一个经验法则,我会说:如果你的处理器是功能强大的number-crunching high-frequency quad-core,并且你通常不会在编码/解码/游戏(呵呵)时打开大量的网页,那么你可以试试通用的(或i686或amd64(如果存在的话)内核并具有最高吞吐量(即处理器能够执行的原始number-crunching))。如果您遇到问题(它们应该确实很小),或者您的机器比市场顶级稍微弱一点,那么请选择-preempt。

如果您使用的是只有一个或两个内核的low-end机器,请尝试使用“低温”。你也可以尝试-realtime,但你会发现它往往会阻止进程,直到”real-time”完成他们的工作。我相信实时内核不是”vanilla”之一,而是应用了CONFIG_PREEMPT_RT补丁。我认为实时内核仅适用于那些必须在嵌入式系统上构建单一应用程序的人,因此通常的桌面用户不应该有实际的好处,因为他们通常同时运行相当数量的应用程序。

最后,如果您想自己重新编译内核以获得low-latency桌面,则最相关的内核选项为:

PREEMPT=y

和:

CONFIG_1000_HZ=y

要添加一些节能功能,您可以选中以下功能:

CONFIG_NO_HZ=y

第三种解决方案

BTW:先发制人,低潜力或rt内核不会让你的系统更快。它们比通用内核稍慢。

第四种方案

从上面引用的文件(http://www.versalogic.com/mediacenter/whitepapers/wp_linux_rt.asp)

  1. 软real-time系统将减少平均延迟,但不能保证最大响应时间。

  2. 即使在worst-case系统负载下,硬real-time系统始终能够满足所需的最终期限(100%)。

  3. 根据Yaghmour [4],“Real-time处理保证,而不是以原始速度处理。”

文章称,对于硬实时内核无响应或时间限制是最重要的属性,所以有时它们会延迟导致延迟的非关键活动,但对于低延迟或其他软实时内核,则尝试减少大部分情况下的一般延迟。由于延迟降低,系统似乎很快。仔细阅读文章。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/732.html,未经允许,请勿转载。