为什么12.04删除了-server内核风味?


13

Ubuntu按照12.04发行说明中的​​说明删除了-server风格:

与Beta-1一样,Beta-2内核不再带有单独的amd64 -server和-generic内核版本。这些已合并为一个通用的内核版本,以帮助减轻LTS版本生命周期内的维护负担。

-generic和-server之间的差异似乎与抢占,计时器中断和I / O调度程序有关,如以下网址所述:https : //help.ubuntu.com/10.10/serverguide/C/preparing-to-install .html#intro-kernel-diffs

我要技术规格。

  1. 那么,现在发生了什么?
  2. 服务器版是否可以在不影响性能的情况下运行台式机内核?
  3. 这是有道理的吗?
  4. 这种差异会怎样?
  5. 可以在用户空间中更改它们吗?
  6. 从12.04开始不适用?
  7. 如果答案是肯定的,那么此更改是否会影响性能?

所有这些都是可以回答的问题。我要求对包装进行特定的更改,而不是其他任何更改。

Answers:


10

正如您在发行公告中所注意到的那样,在12.04版中合并了通用和服务器内核版本,以减轻LTS生命周期内的维护负担。实际上,这两种内核风格仅在两个主要的内核配置选项方面有所不同:默认I / O调度程序和抢占模型。

在Ubuntu Kernel Team邮件列表中对此进行了详细讨论。

如该线程中所述,默认的I / O调度程序从“最后期限”更改为“ cfq”。但是,任何想保留Deadline I / O调度程序的人都可以在启动时通过设置来保持elevator=deadline

抢占模式从CONFIG_PREEMPT_NONE更改为CONFIG_PREEMPT_VOLUNTARY。不幸的是,目前我手头没有任何性能基准。希望这会有所帮助。谢谢。


7

您在提供的报价中会回答“为什么”问题-因为这样更容易维护。内核功能的参数设置非常好,您可以在运行时更改调度程序之类的东西,因此无需急需编译不同的默认值。

出于确切原因和详细讨论,您必须在Ubuntu KernelTeam邮件列表中询问-请参阅信息性KernelTeam Wiki页面以获取联系信息。


2

现在发生的是,服务器和台式机都只有一个内核。如果需要,可以在运行时更改IO调度程序,但是CFQ是功能最完整且维护最充分的调度程序,因此它是一个很好的默认设置。在大多数工作负载下,使用哪一个几乎没有什么区别。服务器内核用于禁用甚至自愿内核抢占,因为理论上可能给吞吐量提高了,但是我不知道任何性能衡量指标实际上显示出任何好处,因此在实践中,迁移到桌面提示模型不会影响服务器。内核也是无滴答的(CONFIG_NO_HZ),这意味着它仅在需要时根据当前正在运行的应用程序计时器调度计时器中断,而不是按固定的时间间隔进行调度,并且我相信尽管服务器指南说的如此,现在多个发行版都存在这种情况。 。

TL; DR:为服务器维护另一个内核没有任何好处,因此该实践已停止。


I / O调度程序确实确实有所作为,特别是对于虚拟化工作负载。看看这里:publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaat/…,它得出的结论是“总体而言,该图显示Deadline I / O调度程序优于CFQ I / O调度程序,尤其是在多线程方案”
syneticon-dj 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.