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