Linux 3.10中近似完全无滴嗒特性解读

一个典型的Linux操作系统中,运行中的CPU通常每秒会被时钟打断100到1000次。时钟中断是为了重新考虑应该运行哪个进程、响应读写更新(RCU)调用,以及处理其它必要的事务。这种周期性的时钟中断或滴嗒比臭名昭著的全局内核锁(BKL)要合理得多,但它的缺点是影响性能,也称不上节能。

几年前,Linux社区开发出了可选的无滴答(tickless)模式,当CPU处于空闲状态,默认关闭时钟中断。它允许空闲CPU长时间处于深度睡眠状态,减少电力消耗。它对于笔记本手机之类电池供电系统具有重要意义。然而这种无滴答模式也存在缺陷,不利于高延迟敏感环境,因为唤醒睡眠中的CPU有时间开销。Linux 3.10内核引入了一个近似完全无滴嗒(full tickless)模式,该模式默认关闭。根据内核开发者的测试,它能节省1%的CPU时间。在启用完全无滴答模式后,运行中的CPU如果只有一个可运行进程,它将关闭时钟中断。如果出现第二个进程,滴嗒会再次出现以供调度器根据时间段分配资源。从技术角度说,这并不是完全无滴嗒,只能说近似。高性能和实时计算将会受益于这个新模式,因为在这两种环境下,一个CPU执行一个任务是一种常见的策略。

不过这个特性现在还处于继续完善开发之中,目前也只在HPC中有一丁点程度的性能提升.. Linus的的不太赞同的意见就是:

So as long as the NOHZ is for HPC-style loads, then quite frankly, I don’t feel it is worth it. The _only_ thing that makes it worth it is that “future plans” part where it would actually help real loads.

 

(via) http://lwn.net/Articles/549580/

@戴维营教育  长沙 Linux 开发,  关注最新内核动态.

文章分类 Linux服务器开发

发表评论