Linux 3.10完全无滴嗒特性详解

jopen 8年前

在一个典型的 Linux 系统中,运行中的 CPU 通常每秒会被时钟打断 100 到 1000 次。时钟中断是为了重新考虑应该运行哪个进程、响应读写更新(RCU)调用,以及处理其它必要的事务。这种周期性的时钟中断或滴嗒比臭名昭著的全局内核锁(BKL)要合理得多,但它的缺点是影响性能,也称不上节能。几年前,Linux 社区开发出了可选的无滴答(tickless)模式,当 CPU 处于空闲状态,默认关闭时钟中断。它允许空闲 CPU 长时间处于深度睡眠状态,减少电力消耗。它对于笔记本手机之类电池供电系统具有重要意义。然而这种无滴答模式也存在缺陷,不利于高延迟敏感环境,因为唤醒睡眠中的 CPU 有时间开销。Linux 3.10 内核引入了一个近似完全无滴嗒(full tickless)模式,该模式默认关闭。根据内核开发者的测试,它能节省1% 的 CPU 时间。在启用完全无滴答模式后,运行中的 CPU 如果只有一个可运行进程,它将关闭时钟中断。如果出现第二个进程,滴嗒会再次出现以供调度器根据时间段分配资源。从技术角度说,这并不是完全无滴嗒,只能说近似。高性能和实时计算将会受益于这个新模式,因为在这两种环境下,一个 CPU 执行一个任务是一种常见的策略。

来自: Solidot