태그 보관물: tickless

Tickless Kernel

Tickless Kernel

RHEL/CentOS 6부터 Tickless 커널이 사용되고 있습니다. CPU가 idle인 상태라도 Timer tick을 처리하기 위해 주기적으로(1초에 1000번, 1000HZ) CPU가 실행되어야 해서 Power Management 차원에서는 비효율적이죠. 그래서 도입된 것이 Dynamic Tick 기능으로 idle 상태에서는 Timer tick까지 멈추도록 하여 CPU가 Deep sleep state로 내려가 전력사용량을 줄이는 기능입니다.

Upstream kernel 2.6.21 버전부터 패치로 포함된 이 기능은 High resolution timer의 도입과 함께 이루어졌습니다. 물론 여기에 단점도 있습니다. Sleep 상태의 CPU를 깨우는데 Latency가 크기 때문에 Low-latency 환경에는 적합하지 않습니다.

http://lwn.net/Articles/223185/

그러던 것이 kernel 3.10 버전부터는 full NOHZ라는 기능이 추가되었는데요, idle 상태가 아닌 상태에서도 필요에 따라 tickless가 될 수 있는 기능이 추가되었습니다. 즉 CPU에서 실행중인 프로세스가 오직 1개일때는 timer를 1HZ로 줄여서 timer tick 처리를 위한 overhead를 줄일 수 있도록 개선된 것인데요, 같은 tickless 기능이라도 full NOHZ의 경우 Power Management 측면 보다는 Performance 측면에서 이점에 초점이 맞춰졌습니다.

http://lwn.net/Articles/549580/

RHEL7에는 kernel 3.10 버전이 base 버전으로 포함되어 있어 full NOHZ 기능도 지원하게 되었습니다.

Advertisements