答案1
这些是一些简单的指导方针,可帮助您了解应该按照哪个内核和哪个顺序进行测试以适合您的用例。
- 如果您的系统不需要低延迟,那么请使用-generic 内核。
- 如果您需要低延迟系统(例如用于录制音频),请将 -preempt 内核作为首选。这可以减少延迟,但不会牺牲省电功能。它仅适用于 64 位系统(也称为 amd64)。
- 如果 -preempt 内核不能满足您的需求,提供足够低的延迟(或者您有一个 32 位系统),那么您应该尝试 -lowlatency 内核。
- 如果 -lowlatency 内核不够用,那么你应该尝试 -rt 内核
- 如果 -rt 内核对你来说不够稳定,那么你应该尝试 -realtime 内核
所以这取决于你打算用你的 Studio 发行版做什么。对于大多数需要快速终端用户响应时间的用户来说,通用内核就足够了,而对于需要进行专业视频编辑的用户来说,即使是简单的丢帧也是不可接受的,因此需要实时内核。
欲查看更详尽、更易理解的博客文章,阅读此链接
答案2
我是 ubuntu 粉丝链接的博文的作者:http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/
那篇博文没有提出任何事实,只是理论。实际上,它的工作方式是这样的:处理器更频繁地“停止”以查看是否有一些进程需要立即关注。这意味着这些进程将在其他进程之前执行,因此您在编码时不会跳过帧,也不会在鼠标单击和敌人死亡之间产生巨大的延迟时间。这并不意味着所有进程都会更快结束:实际上,CPU 正在花费更多时间来决定接下来要执行哪个进程,并进行上下文切换。因此总执行时间更长,这就是为什么没有人在 Web 服务器或数据库机器上运行可抢占内核的原因。但可抢占的 300Hz(甚至 1000Hz)内核最适合游戏服务器。
但是现在的处理器有许多核心,因此当只有少数进程需要关注时,它们可以很容易地被分配到不同的核心上,而不必等待一个核心来占用它。
(stackexchange 需要我的参考/个人经验:我是一名电子工程师,嗜血的菜鸟游戏玩家,在http://www.gamezoo.it)。
因此,根据经验,我会说:如果您的处理器是功能强大的高频四核处理器,并且您在编码/解码/玩游戏时通常不会打开大量网页(呵呵),那么您可以尝试通用(或 i686,或 amd64,如果存在)内核并获得最高的吞吐量(即处理器能够进行的原始数字运算)。如果您遇到问题(它们应该真的很小)或您的机器比市场上的顶级机器稍微弱一些,请选择 -preempt。
如果您使用的是只有一两个内核的低端机器,请尝试 -lowlatency。您也可以尝试 -realtime,但您会发现它倾向于阻塞进程,直到“实时”进程完成其工作。我相信实时内核不是“原始”内核,而是应用了 CONFIG_PREEMPT_RT 补丁。我认为实时内核仅适用于那些必须在嵌入式系统上构建单个应用程序的人,因此普通桌面用户不应该获得真正的好处,因为他们通常同时运行相当多的应用程序。
最后,如果您想自己重新编译内核以获得低延迟桌面,最相关的内核选项是:
PREEMPT=y
和:
CONFIG_1000_HZ=y
为了增加一些省电功能,你可以检查一下这个:
CONFIG_NO_HZ=y
答案3
我有一台旧笔记本电脑,配备双 AMD A6-4400M,频率为 1600MHz,我外出时很少使用它,主要用于阅读电子邮件和浏览休闲网站。可能与软件更新有关,导致它没有响应。比如输入十几个字符却看不到第一个字符。小部件经常询问我是否应该强制退出某个进程。
重启后sudo apt-get install linux-lowlatency
,它变得流畅且响应迅速。(uname -r 5.0.0-20-lowlatency。)太棒了,我几年前就应该换了。让我强调一下 Seven 的回答:除非你想从一台数字运算服务器中榨干最大能力,争取先发制人!
答案4
从上面引用的文献中(http://www.versalogic.com/mediacenter/whitepapers/wp_linux_rt.asp)
- 软实时系统将减少平均延迟但不能保证最大响应时间。
- 即使在最坏的系统负载下,硬实时系统也能始终满足所需的期限(100%)。
- 按照Yaghmour[4]的说法,“实时处理的是保证,而不是原始速度。”
文章说,对于硬实时内核来说,响应速度慢或时间受限是最重要的属性,因此有时它们会延迟导致延迟的非关键活动,但对于低延迟或其他软实时内核,则尝试减少一般延迟,这在大多数情况下会有所帮助。由于延迟减少,系统似乎运行速度很快。请仔细阅读文章。