Core Parking이라고 들어보셨나요?

WS08-R2_h_rgb

요새 시장에서 화두가 되는 IT 트렌드중에 하나는 바로 Green IT입니다. Green IT를 소프트웨어로 실현하고 있는 큰 회사중에 하나가 바로 Microsoft입니다.

Windows Server 2008을 설치하는 자체가 Windows Server 2003에 비하여, 전기 요금을 10%이상 줄일수 있다는 포스팅을 한 적도 있고요. Green IT에 대해서 많은 좋은 포스팅을 하시는 저희 팀에 Intrastructure Architect Evangelist이신 신현석 부장님의 블로그에도 이와 연관된 좋은 글들이 많습니다.

Core Parking이라는 새로운 단어를 제가 들고 나왔는데요. Windows Server 2008 R2에서 새롭게 추가된 기술입니다. 단어에서 풍기는 풍채는 Core.. 프로세서의 코어를.. Parking 주차한다는 어떤 기술이다! 라는 감은 오실거라 생각합니다.

간단하게 그림을 하나 살펴보죠. 가장 쉬운 예로 바로 VM 환경을 생각할 수 있습니다. 지금까지 16개의 논리적인 프로세서를 가진(대표적으로 쿼드코어 4프로세서정도가 되겠네요) 머신에서 가상 머신을 배분하면, 쉽게는 아래와 같은 형태로 배분되었습니다. 가장 이상적이라고 생각하실 수 있지만, 개별 머신이 낮은 사용률을 보이고 있다면, 오히려, Core 1에 낮은 사용률을 가진 VM을 두개 배치하고, 빈 코어는 쉬게하는 것이 오히려 전력 사용에는 효과적이라고 생각할 수 있습니다.

image

네 맞습니다. Core Parking은 그러한 컨셉에서 나온 것입니다. 프로세서가 과도하게 사용되지 않을 경우, 특정 코어의 사용률이 어느정도가 될 때까지, 다른 코어는 쉬는 상태, 더 정확하게는 전원을 공급하지 않는 상태로 처리시켜, 전력 사용을 낮춰주는 기술입니다.

image

프로세서의 ACPI(Advanced Configuration and Power Interface)는 운영 체제 장치 구성과 전원 관리를 위한 표준입니다. ACPI에는 전원 상태에 대한 시스템, 장치, 그리고 프로세서 상태, 마지막으로 성능 상태등에 다양한 상태 정의를 해놓았습니다.

프로세서는 C0,C1,C2,C4,C6로 정의가 되어져 있습니다. 해당 상태에 대한 정의는 아래 그림을 참고하시면 됩니다.

image

프로세서의 C 상태는 대부분 모바일 응용 프로그램에서 사용을 하였던 부분이었고, Windows Server 2008 이전에는 서버에 대해서는 대부분 C0의 상태로 운영을 시켰습니다만, 서버에서 전력을 가장 많이 사용하는 장치가 프로세서이고, 해당 프로세서에 대한 상태 처리를 운영 상황에 적절하게 변경하여, 전력 소모를 줄일 수 있게 되었던 것이죠. 서버가 리소스가 필요할 때 급하게 이를 다시 상태 변경하여 처리하는 것이 아니라, 서버 사용률에 대한 주기적인 스케쥴링을 통해, 일정 사용률 이상이 되었을 때, 코어들을 다시 동작시키는 형태로 처리하므로, 성능에는 크게 걱정하지 않으셔도 됩니다.

Windows Server 2008 R2에서는 C4, C6와 같은 전력 공급을 하지 않고, 프로세서를 주차(Parking)해놓는 컨셉을 제공하는 것이며, 필요시 이를 다시 상태 변경하여, 실제 운영에 반영하는 것입니다. 프로세서마다, 지원하는 C 상태가 차이가 있기에, 항상 어떠한 C 상태로 Core Parking 기술을 완벽하게 지원하다는 내용은 언급하기가 난해합니다. (조만간 Core Parking에 대한 기술적인 이야기를 세미나나 별도의 포스팅으로 다루겠습니다.)

이렇게 분산(Dispersion)과 밀도(Density)에 대한 고민.. 그리고 이에 대한 운영 체제의 적절한 처리를 통한 Green IT의 구현.. Core Parking도 그 기술중 하나가 될 것입니다. :)