这取决于您将如何使用您的工作室发行版。对于大多数需要快速终端用户响应时间的用户来说,通用内核就足够好了;而对于那些需要进行专业视频编辑,甚至一个简单的帧丢失都是不可接受的用户来说,则需要实时内核。
要获取更详尽易懂的博客文章,请点击这里阅读链接
我是这篇博客文章的作者,由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
Mac OS X是不同的,你可以在这里阅读原因:https://www.cse.unsw.edu.au/~cs9242/10/lectures/09-OSXAudiox4.pdf(这是政治和经济的结果,而不是天才和远见!)。结果是在吞吐性能上稍微做出了妥协,以便更好地处理延迟问题的系统。因此,Mac OS X及其iOS衍生版成为数字多媒体制作市场的主导者。只有一个内核。非多媒体用户对于Mac OS X的吞吐性能持续较低并不抱怨,因为实际上没有人关心文件转码需要29秒还是30秒,或者启动程序需要4.75秒还是5秒(即使是基准测试人员和“性能狂人”每天在现实世界中也注意不到这些差异),而每个人都关心用户体验是否出现卡顿和音频故障。这与延迟和响应速度的重要性有关,而不是吞吐性能的问题(这是基准测试大战唯一关注的问题),直到目前为止,只有Mac OS X真正对整个操作系统设计给予了认真考虑。
https://liquorix.net/也许在调整性能优先级方面更符合Mac的内核(我正在确认这一点)。而且我相信(也希望)-generic内核正朝着这个方向发展。对于90%左右的用户来说,这已经足够好了,除非是那些真正需要a. 尽可能获得所有吞吐量或者b. 需要极低的无故障延迟和抖动的极端情况。对于这些情况,总会有一些定制的内核可供选择。我记得NASA使用自己的内核,但我可能记错了 :)