시계를 보는 횟수를 줄일수록 그만큼 더 편히 쉴 수 있지 않을까?
이 말은 어찌 보면 리눅스의 절전 효율성 제고를 위해 리눅스의 핵심 부분에 가해진 현저한 변화를 뒷받침할 수 있는 논리적 근거가 될 수 있을지 모르겠다. 현재 리눅스 운영체계의 신규 버전에는 CPU의 동작을 줄여 이를 절전 상태로 유지하기 위해 기존의 타임-키핑(time-keeping) 기능을 배제한 '틱리스 커널(tickles kernel)'이 적용되고 있다.
전력 효율성은 모든 운영체계가 활용할 수 있는 그 무엇이다. 리눅스를 예로 들면 전력 효율성을 통해 휴대형 컴퓨터의 배터리 수명을 연장함으로써 윈도우에 대한 경쟁력을 키울 수 있을 것이다. 아울러 하루 24시간 작동하는 서버에서는 전기 비용을 절감시켜 줄 것이다.
전력 효율성을 위한 노력에는 틱리스 커널만 있는 것은 아니다. 인텔은 지난 5월 프로세서를 불필요하게 고도의 활성상태로 유지시키는 원인을 제공하는 소프트웨어를 보다 쉽게 파악할 수 있게 해주는 파워톱(PowerTop)이라는 소프트웨어를 발표한 바 있다.
일루미나타의 고든 해프 연구원은 이 같은 에너지 절감을 위한 노력에 대해 충분히 납득할만하다면서 무분별한 성능 지상주의는 더 이상 시대적 요구가 아니다. 보급이 확대되고 있는 랩톱의 경우 특히 그러하다고 말했다.
리눅스 개발 작업에는 더러 수년이 걸리는 경우도 있지만 현재 틱리스 커널은 리눅스의 주류로 편입되어 가는 과정에 있다.
리눅스의 선구자라 할 수 있는 리누스 토발즈는 신규 커널에 대해 재설계가 거의 마무리된 상태라며 상위 수준 소프트웨어의 경우에는 파워톱이 제 역할을 톡톡히 하고 있다고 덧붙였다. 이어 리눅스 단체나 일반 사용자들의 관심이 높다 보니 정착하는데 별 무리가 없으리라 본다고 말했다.
현재 인텔에 재직 중인 베테랑 커널 프로그래머인 아잔 반 드 벤(Arjan van de Ven)은 아직 완전하진 않지만 가시적 성과가 나타나고 있다며 오늘 연구소에서 보니 리눅스가 채택된 랩톱의 유휴 상태(idling state)에서의 전력 소모가 3개월 전보다 15-25% 가량 줄어든 것으로 나타났다고 말했다.
절전형 칩
프로세서가 컴퓨터 내 유일한 전력 소모원이라 할 수는 없지만 전력을 엄청나게 소모하는 것은 사실이다. 100와트 전구보다 더 많은 전력을 소모하는 경우도 적지 않다. 그런데 컴퓨터 폐열을 식히는 쿨러는 이보다도 더 많은 전력을 소모하고 있고 데이터 센터의 에어컨은 말할 것도 없다.
최근 몇 년 동안 칩 제조업체들은 최대 성능으로 동작할 필요가 없는 경우 절전 모드로 진입할 수 있는 기능을 갖춘 마이크로프로세서를 내놓고 있다. 절전 모드란 칩의 내부 주파수가 느려지고 전압 수준이 떨어지면서 전기 소모가 잦아들게 되는 상태이다.
물론 사용자에 의해 대기 모드 명령이 내려지면 프로세서는 절전 모드로 들어갈 수 있다. 하지만 이것만으로는 충분하지 않다. 기가헤르츠 주파수 사이클의 지속시간은 10억 분의 1초 미만에 불과하기 때문에 가령 키보드의 키를 2차례 연속해서 재빨리 눌렀을 때 그 사이에 놓인 시간 간격 동안에도 프로세서는 절전 모드를 수차례 들락날락할 수 있다.
그런데 스케줄링, 하드웨어 교신 등의 필수 작업을 담당하는 핵심 소프트웨어인 운영체계 커널이 ‘할일 없이 바쁜 상태’를 벗어나는 데 능숙하지 못하다. 소프트웨어가 불필요하게 커널을 자극해 이를 활성상태로 유도하기 일쑤이고, 아울러 커널 자체도 동작을 멈추고 대기 상태에 들어가는 편이 나을 때조차 빈둥거리면서 에너지를 소모하기도 한다.
인텔의 소프트웨어는 위의 첫 번째 사례를 파악하는 데 유용하고 ‘틱리스 커널’은 두 번째 사례에 유용하다.
틱리스 커널
토발즈가 지난 4월 발표한 리눅스 커널 버전 2.6.21에는 틱리스 기능이 포함되어 있다. 이는 레드햇의 무료 리눅스 배포판인 페도라7에 구현됐다.
반 드 벤은 절전 기능이 탁월했다고 평했다.
그는 인텔의 휴대형 컴퓨터용 프로세서는 최대 에너지 절약 모드에서 1.2와트까지 전기를 소비한다며 매 밀리초마다 호출신호가 나온다면 진정한 에너지 절약 모드로 들어가기 어렵다. 틱리스 커널에 의해 비로소 최대 에너지 절약 모드로 들어갈 수 있는 것이다. 이에 의해 전력 소모를 현저히 줄임과 아울러 배터리 수명을 연장할 수 있다고 말했다.
틱리스 커널에서 타이밍 기능은 계속 유지되고 있다. 하지만 지금까지와는 다른 방식이다. 수행이 요구되는 작업을 빈번히 확인하는 대신 -리눅스의 경우 1초당 1,000회, 클럭 신호 길이는 1,000분의 1초- 하드웨어가 수행 예정 작업에서 커널의 개입이 요구된다고 인식한 경우 인터럽트를 발생하도록 사전 설정해둔다.
틱리스 커널에서는 절전기능에 의해 부수적인 혜택도 주어진다. 다수의 유휴 상태의 장치 대신 소수의 장치를 보다 효율적으로 이용함으로써 가상화 기능의 활용도를 높일 수 있다는 것이다. 가상화란 하나의 컴퓨터에서 다중 운영체계를 동시 운영하는 기술이다.
틱리스 커널이 의미하는 바는 모든 운영체계의 기반이 되는 가상화 소프트웨어가 불필요한 인터럽트에 의해 부당하게 혹사당하지 않게 된다는 것이다. 그래서 이론상으로 네트워크 관리자는 보다 과감하게 통합작업을 수행할 수 있게 된다.
반 드 벤은 50대의 가상 게스트가 각각의 타이머에서 1초당 1,000회씩 틱을 발생시키도록 한다면 1초당 총 5만회의 틱이 발생하는 셈이다. 아무런 작업도 하고 있지 않은데도 말이다. 틱리스라면 이를 10으로 낮출 수 있고 그것만으로도 50대의 게스트를 무리 없이 처리할 수 있을 것이라고 말했다.
포로닉스 사이트의 편집자인 마이클 래러블은 리눅스 하드웨어의 성능을 실험한 결과 페도라7로 구동되는 IBM의 펜티엄 M 기반 싱크패드 R52 모델에서 틱리스 커널에 의해 전력 소모가 28와트에서 26와트로 줄어들었음을 발견했다.
그는 틱리스 커널은 프로세서 절전 기술과 연계해 배터리 수명을 연장하고 열 발생량을 감소시키는 데 뛰어난 잠재력을 지니고 있다고 평했다.
파워톱
틱리스 커널은 상위 수준 소프트웨어에서 호출신호를 빈번히 발생시키도록 요구하는 경우에는 그다지 효과가 없다. 이때 필요한 것이 파워톱이다.
반 드 벤은 리눅스에서는 일반적으로 이렇다 할 이유 없이 프로세서에 호출신호를 보내는 컴포넌트가 많다며 파워톱은 배터리 소모의 주요 원인이 되는 컴포넌트가 무엇인지 알려줄 것이라고 말했다.
파워톱에 의한 정밀 조사 결과 그 용의자들이 드러났다. Gvim 문서 편집기의 깜박거리는 커서는 커널을 호출하는 작용을 한다. 에볼루션 이메일 프로그램은 1초에 10회 신규 작업을 체크하도록 되어있고 GAIM 인스턴스 메시징 소프트웨어는 5초에 한번씩 ‘유휴’ 상태 설정을 위한 확인 작업을 수행하도록 되어 있다.
이 밖에 리눅스 커널 자체에도 개선의 여지가 남아 있다.
토발즈는 커널 자체에 기본적인 타이머 처리 지식이 모두 포함되어 있지만 커널의 서브시스템 대다수에서 자체 타이머가 사용되고 있기 때문에 이를 조정하는 데 다소 시간이 걸릴 것이라고 말했다.
다른 문제들도 있다. 반 드 벤은 커널이 네트워크 카드, 키보드 등의 하드웨어와 교신하는 데 필요한 소프트웨어 모듈인 장치 드라이버 역시 절전을 위해서는 개선이 요구된다고 지적했다.
현재 실행 중인 작업에 근거해 컴퓨터의 동작을 통제하는 절전 관련 정책 관리 소프트웨어의 개발도 필요할 것이다. 아울러 랩톱의 일시 중지/재시작 기능을 강화하여 최대절전 모드에 원활하게 진입할 수 있도록 하는 것도 어렵지만 해결해야 할 과제이다.
반 드 벤은 일시 중지/재시작 기능과 관련해 상당한 재설계 작업이 요구된다. 최대절전모드의 경우 특히 그러하다. 이에 관한 논의가 현재 진행 중이라고 말했다.
이들 작업 중 다수는 새로운 틱리스 기반에서 이루어질 수 있다. 토발즈는 어려운 작업은 거의 마무리된 상태라고 말했다. @