레드햇 엔터프라이즈 리눅스, 윈도 2008 보다 전략소모 12% 낮다

 

지구 환경을 보호하고, 회사 데이터 센터 차원에서 서버 운용의 결과로 나타나는 이산화탄소 배출을 최소화하기 위해서는 서버를 운영할 때 소모되는 전력량을 최소화해야 한다.

물론 서버를 구입할 때부터 폐기할 때까지의 과정이 지구 환경에 어떠한 영향을 미치는지 꼼꼼히 따져 보는 것도 고려해야 한다.

그러나 이런 복잡한 과정 이전에 네트워크월드(NetworkWorld)는 앞으로 소개될 테스트를 통해, 윈도 서버 2008과 리눅스 중 어떤 것이 더 ‘친환경적’인지 꼼꼼히 따져봤다.

이번 테스트를 통해 운영 체제 안에 있는 소비 전력 절감 메커니즘이 에너지, 즉 소비 전력 감소에 결정적인 역할을 한다는 것을 밝혀냈다.

테스트를 통해 얻은 최종 결론은 레드햇 엔터프라이즈 리눅스가 윈도 서버 보다 전력소모가 훨씬 적다는 것이다. 최고치 기준으로 무려 12% 가량 레드햇이 전력을 덜 소모했다.

이번 테스트는 몇 가지 제한 조건을 정해 놓은 상태에서 진행된 것으로, 실제 현장에서는 다소 차이가 있을 수 있다.

우리는 운영 체제로 윈도 서버 2008 엔터프라이즈 에디션, 레드햇 엔터프라이즈 리눅스 (RHEL) 5.1, SUSE 엔터프라이즈 리눅스 10 SP1를 선택했다.

이 OS들을 보편적으로 사용되는 4가지 모델의 1U 서버에 올려 그 전력 소비를 테스트했다. 서버는 델(Dell)과 IBM 것을 각각 한 대씩, 그리고 HP 서버를 두 대 사용했다.

최소 전력 소비 조건으로 세팅한 일부 테스트에서는 윈도 서버 2008이 전력을 덜 소비하는 경우도 있었다. 그러나 하드웨어를 바꿔가며 교차 테스트한 결과 최종 승자는 RHEL임이 분명했다.

윈도와 리눅스 세팅은 서버의 고에너지 효율과 고성능 모드를 바꿔가며 비교할 수 있게 조정하였으며, 에너지 소비 전 영역에서 고르게 영향을 미칠 수 있게 했다.

하지만 역시 중요한 것은, 실제 상황에서 에너지 효율은 서버에 걸린 부하에 따라 다르고 또 같은 조건의 서버라도 일반 가상화 머신을 사용해서 복수 OS를 지원하는지 여부에 따라 달라질 수 있다는 것이다.

각 실험군에 대한 이번 실험 결과는 향후 변도 가능성도 있다. 서버 칩셋과 OS 튜닝 기술이 나날이 발전하고 있기 때문이다. 물론 OS와 응용 프로그램의 전력 소비를 결정하는 중요한 요인인 펌웨어 코딩 기술 역시 하루가 다르게 달라지고 있기 때문이기도 하다.

어떤 운영 체제가 더 친환경적인가를 평가하는 이번 실험은 사실 쉽지 않았다. 왜냐하면 운영체제와 응용 프로그램 구성에 따라 시스템이 전력을 덜 소모하게 할 수는 있지만 이렇게 하면 작업 수행 능력은 떨어질 가능성이 있다.

이번 실험을 통해 CPU의 성능을 조절하는 메커니즘(사실은 이것이 바로 운영체제가 해당 서버의 전력 소비를 줄이는 방법이다)이 제대로 작동되려면 먼저 최신 펌웨어가 있어야 하고 드라이버가 업데이트돼야 한다는 사실을 발견했다.

이러한 조건에 맞춰 출시된 하드웨어는 IBM x3350과 HP DL-360 G5 밖에 없었다. 우리는 6 주 동안 실험을 진행했는데 HP DL-160과 Dell 1950은 이 기간 동안 몇 번이나 업데이트를 해 각각 윈도 2008과 리눅스의 전력 소모 조절 기능에 알맞도록 CPU를 조절해야 했다. 실제 기업 상황에서 이러한 최적 조건을 갖춘다는 것이 사실 쉬운 일이 아닐 것이다.

CPU 관리의 중요성

앞서 언급했듯이 윈도 2008이든 리눅스든 간에 소비전력을 줄이는 방법의 핵심은 서버에 걸리는 부하가 적을 때 CPU 역시 쉬게 하는 것이다.

윈도 서버의 경우 소비 전력 감소에 중요한 조건이 하나 더 있는데 서버 부하가 적은 기간에는 하드 디스크 회전수를 낮추는 것이다. (SSD가 일반화 되면 어떻게 바뀔까?)

데스크탑 용 리눅스의 경우 ACPI(advanced configuration and power interface) 기능이 있으나 이것은 원래 랩탑에 사용되도록 출시된 것으로 서버용 레드 햇이나 SUSE에는 사용할 수 없기 때문에 이번 테스트에는 적용하지 못했다.

일부 칩셋은 하드웨어적 성능을 조절할 수 있지만 2007년 이전에 출시된 칩셋은 대부분 그런 기능이 없어 언제나 전력을 최대로 소비할 수 있게 돼 있는 것도 문제다.

지난 3년 간 출시된 칩셋 중, 인텔, AMD, 비아(Via Technology)를 비롯한 몇몇 업체에서 출시된 x86용 칩셋은 고속(즉, 고전력소비)과 저속(즉, 저전력소비) 두 모드 사이에서 유기적으로 변환될 수 있게 디자인돼 있었다.

이번 테스트에 사용된 시스템의 CPU는 인텔의 제온 멀티코어(Xeon multi-core)로, CPU 클럭 수를 줄여서 성능을 함께 줄이는 기능이 있다. 하지만 앞서 언급한 대로, CPU 성능 조절을 제대로 하기 위해서는 바이오스(BIOS)와 펌웨어를 최신 버전으로 업그레이드해야 했다.

IBM x3350과 HP DL160은 싱글 쿼드 코어 CPU를 쓰고 있었는데 이에 반해 Dell 1950과 HPDL360G5는 쿼드 코어를 두 개 사용했다.

CPU 성능 감소(물론 여기에서는 서버 부하가 적을 때 전력 소비를 줄이기 위해 CPU 성능을 일부러 낮추는 것을 말한다) 기능을 시작하자마자 CPU를 구성하는 수백만 개의 트랜지스터는 거의 동시에 CPU 속도와 거의 같은 속도로 구동되기 시작했다.

이 때 속도를 줄이는 데 필요한 준비 시간은 매우 짧아서 이번 테스트에 사용한 측정 장비로는 감지되지 않았다.

테스트에 사용한 4가지 시스템 모두, CPU 성능 감소 모드는 전력을 줄이는 데 효과가 있었다. 그러나 이것은 CPU에 한정된 것이고 다른 디바이스들의 전력 소모량에는 영향을 미치지 않았다.

해당 시스템들은 애플리케이션이 작동하기 전, 즉 부하가 없는 상태를 유지할 수 있어야한다. 즉, 이때는 CPU를 비롯한 모든 디바이스는 최소 전력 소모 상태로, 일부 디바이스들은 단지 애플리케이션, 유저, 네트워크를 비롯한 주변 장치를 모니터링하는 상태로만 있어야한다. 이렇게 전력을 최소로 하는 상태를 이 테스트 에서는 “조용한 상태”(quiescent state), 혹은 “최소 준비 상태(minimal ready-state)”로 정의한다.

          윈도와 리눅스 서버 전력 소비 측정 테스트 결과

성능 중심 모드이든 저전력 모드이든, 테스트 전체에 걸쳐 레드햇 엔터프라이즈 리눅스 5.1 전력 소모가 가장 낮았다. 16 테스트 방법 13개에서 RHEL 전력 소모가 최소였을 만큼 테스트에 사용된 모든 서버에 걸쳐서 경향은 확실하다. 윈도 서버 2008과의 전력 비교 일부 테스트 결과에서는 전력 소비량 차이가 무려 10% 달했다. 표에 나타난 모든 수치는 해당 OS 하드웨어 조합에서 나타난 결과이며 단위는 와트[W]이다.

Server Hardware Platforms

(서버 플랫폼)

Windows Server 2008 Power Draw

(윈도 서버 2008 전력 소모)

SUSE Enterprise Linux 10 Power Draw

SUSE (엔터프라이즈 리눅스 10

전력 소모)

Red Hat Enterprise Linux 5.1 Power Draw

(레드햇 엔터프라이즈 리눅스5.1 전력 소모)

Average Linux Power Draw

(리눅스 평균 전력 소모)

Windows Server 2008 percentage of Average Linux Power Draw

(리눅스 평균 대비 윈도2008 서버의 평균 전력 소모 비율(%))

Windows Server 2008 percentage of lowest Linux Power Draw

(리눅스 최저 전력 소모 대비 윈도 2008 서버 전력 소비 비율(%))

 

Quiescent test with operating system Power Savings settings applied

저전력 세팅시 저소음 태스트

IBM x3350

71.8

73.1

71.7

72.4

99.17

100.14

Dell 1950

200.7

207.5

205.7

206.6

97.14

97.57

HP DL-160 G5

*

165.6

160.3

163.0

n/a

n/a

HP DL-360 G5

232.0

223.2

221.1

222.2

104.43

104.93

 

 

Quiescent test with operating system Power Savings settings applied

저전력 세팅 저소음 테스트

IBM x3350

73.7

73.4

72.9

73.2

100.75

101.10

Dell 1950

220.4

209.2

205.4

207.3

106.32

107.30

HP DL-160 G5

167.7

165.6

164.3

165.0

101.67

102.07

HP DL-360 G5

239.1

238.0

233.7

235.9

101.38

102.31

 

 

Active test with operating system Power Savings settings applied

저전력 세팅 OS 활성 테스트

IBM x3350

74.4

74.6

75.8

75.2

98.94

100.27

Dell 1950

220.4

210.0

200.7

205.4

107.33

109.82

HP DL-160 G50

*

166.9

159.5

163.2

n/a

n/a

HP DL-360 G5

234.3

241.0

229.9

235.5

99.51

101.91

 

 

Active test with operating system tuned for performance, not power savings

저전력이 아닌 성능 모드 세팅 OS 활성 테스트

IBM x3350

87.8

79.6

78.3

79.0

111.21

112.13

Dell 1950

230.8

217.1

209.5

213.3

108.20

110.17

HP DL-160 G5

155.7

168.2

165.3

166.8

93.37

94.19

HP DL-360 G5

244.6

242.0

239.6

240.8

101.58

102.09

*펌웨어/BIOS의 상호운용성 문제로 저전력 모드의 테스트를 실행 할 수 없었음.

모든 전력 측정 단위는 와트[W]이며 테스트가 진행되는 4 시간 동안 1천 번, 실시간으로 측정되었음.

부팅 직후 파워서플라이의 불균일한 작동이 측정치에 미치는 오류를 제거하기 위해 모든 데이터는 서버가 부팅된 후 2분 이상 지난 후 측정됐음.

일단 운영체제를 세팅해 CPU 성능을 최소화함으로써 이러한 ‘최소 준비 상태’로 만든 것이야 말로 윈도든 리눅스든 말 그대로 그린 컴퓨팅이다.

사실 리눅스에 한해서 보자면 OS 커널에서부터 하드웨어를 컨트롤해 소모 전력을 대폭 감소시키는 티클리스 아이들(tickles idle)이 개발 과정에 있다. 시스템 인터럽트 틱(tick)이란 운영체제가 명령 수행을 기다리는 짧은 시간을 말한다.

과거 6년 이상 동안, 이러한 인터럽트 틱은 초당 약 1천 번으로 세팅됐다. 즉, CPU는 1 초 동안 1천 번이나 동작을 방해받는 것이다.

티클리스 버전의 리눅스 커널은 이러한 틱이 발생하는 횟수를 줄인다. 레드햇과 SUSE 역시 장차 티클리스 버전 커널을 OS에 포함시킬 계획이다. 그러나 이번 테스트에서는 포함되지 않았다.

어떨 서버 전력이 감소하는가

테스트를 시작하기에 앞서, 테스팅 팀은 노벨/SUSE, 레드햇, 그리고 MS가 각각 어떤 방법으로 자신들의 OS를 이용해 그린 컴퓨팅을 설명하는지 문의했다.

또, IBM, HP, 델에는 각 회사가 생각하기에 그린 컴퓨팅을 가장 잘 구현할 수 있는 서버를 제공해달라고 요청했다.

물론 그렇다고 해서 이 테스트에서 각각의 하드웨어를 분석하려한 것은 아니다. 사실, 서버 시장에는 파워 서플라이의 효율이나 기타 하드웨어 디바이스의 에너지 소비 감소라는 문제를 놓고 많은 논쟁이 벌어지고 있다.

그런데 대부분 이러한 논쟁은 각 벤더 특유의 하드웨어 관리 API(application program interface)와 관련이 있고 해당 서버에서 사용되고 있는 운영체제 자체와는 아무런 상관이 없다.

이 테스트는 어디까지나 전력 소모 관점에서 운영체제를 분석하는 것이 목적이며 따라서 각 회사 서버 내의 디바이스들이 얼마나 전력을 소모하는지를 측정하는 데는 관심이 없음을 알려둔다.

윈도2008 서버와 윈도 비스타의 저전력 모드는 기본적으로 동일하다. 이 두 운영체제는 CPU 전력 소모를 줄이거나 하드디스크가 회전을 멈추는 시간을 늘려 시스템을 저전력 모드로 만든다.

그러나 이러한 방법은 ACPI(advanced configuration and power consumption) V3 지원 체계에는 적합하지만 서버에는 어울리지 않는다. 앞서 언급했듯, 인텔, MS, 그리고 도시바가 공동 개발한 이 전력관리 규격은 주로 PC에 사용되기 때문이다.

윈도에 적용되는 전력 소비 모드는 3가지로 절전(power saving), 보통(balanced), 고성능(high performance)가 있고 모두 윈도의 제어판(control panel)에 있는 전력 세팅 옵션에서 선택할 수 있다.

이 세 옵션은 액티브 디렉토리에서 그룹 정책(group policies)를 통해 좀 더 세밀하게 선택될 수 있다. powercfg.exe라는 프로그램 역시 매우 상세하게 전력 소비 모드를 선택할 수 있게 도와준다. 그러나 이렇게 세밀하게 들어가자면 가능한 옵션 조합의 수가 너무 많아지기 때문에 본 테스트에서는 제외했다.

따라서 우리는 윈도의 전력 소비 모드 중, 절전 및 고성능 모드만을 택해 테스트했다. 그래야만 리눅스와 최대한 잘 비교할 수 있기 때문이다. 참고로 리눅스도 최대 성능(full throttle), 보통(rational), 저전력(low-latency)으로 불리는 세 가지 전력 소비 모드를 갖추고 있다.

RHEE5.1에 들어 있는 리눅스2.6 커널, 그리고 SUSE 엔터프라이즈 리눅스 10 센터에서 커널 모듈을 통해 CPU 클럭 속도를 낮추는 옵션을 ‘cpufreq’라 한다.

이에 관련된 모드들을 거버너(governors)라 부르며 각 모드의 정식 명칭은 성능(performance), 온디맨드(ondemand), 저전력(powersave), 컨저버티브(conservative)다.

여기에 다섯 번째 거버너가 또 있는데 이것은 사용자 영역의 옵션이며 정책적으로 정의된 특수한 루트 객체만을 대상으로 사용된다. 다시 언급하지만 우리가 테스트하려 한 것은 각 OS에 의해 지배되는 각각의 독립된 프로세스가 아니라 OS 그 자체다.

우리는 테스트의 첫째 단계로 cpufreq가 지원하는 모든 종류의 전력 절약 모드에서 모든 서버를 테스트했다. 이렇게 함으로써 본 테스트에 어떤 모드가 가장 적합한지 결정할 수 있었다.

이 결과에 따라 테스트는 최대 전력 소비 모드에서 OS의 성능(performance)을 테스트하고 저전력(power saving) 모드에서 온디맨드를 테스트하기로 했다.

실제 테스트에서 컨저버티브 모드는 제외됐다. 보통 서버는 연중 무휴 랜덤 액세스가 가능해야 하는데 컨저버티브 모드를 쓸 경우 대기 시간이 필요 이상으로 길어지기 때문이다. 또한 저전력(powersave) 모드 역시 제외했는데 프로세서를 느리게 하고 테스트 시간이 길어지기 때문이다.

테스트 기간 중, 리눅스의 cpufreq 커널 모듈과 윈도의 파워 세팅은 우리가 직접 바꾸지 않아도 스스로 큰 폭으로 변동했다.

전력 소모를 측정하기 위해 채택한 테스트 방법은 크게 두 가지다. 첫째가 앞서 언급한 “저소음 상태 (quiescent state)” 테스트다.

이 때, 각 OS와 각 서버가 한 조를 이루며 각 조는 4 시간 동안 각기 다른 모드, 즉 성능(performance, 즉 고 전력 소비 상태) 모드와 저전력(power saving) 모드 하에서 아무런 부하 없이 그냥 놓아 둔다.

두번째는 서버에 부하를 건 상태에서 전력 소모를 측정하기 위한 테스트다. 일정한 부하를 주기 위해 우리는 위와 마찬가지로 성능 모드와 저전력 모드 하에서 각 OS-서버 조(組)에 4 시간 동안 연속적으로 이메일을 보냈다. 부하 조건에서 수행된 이 테스트를 우리는 활성(active) 테스트라 이름 붙인다.

활성 테스트 중, 리눅스의 경우 우리는 sendmail/procmail을 SMTP 서버로 만들어 1천 명의 사용자에게 이메일을 보냈다.

윈도2008 엔터프라이즈 서버 에디션의 경우 MS 익스체인지 서버 2007을 설치해 역시 1천 명의 사용자에게 이메일을 보내는 방식으로 서버에 부하를 줬다.

리눅스, 윈도의 경우 모두 우리가 직접 짠 이메일 테스트 스크립트로 이메일을 전송했다. 또 각각의 경우에 OS와 응용프로그램이 스스로 CPU 코어 수를 선택할 수 있게 했다.

결과

IBM x3350, HP DL360G5, Dell 1950 서버에서 저소음 상태 테스트와 활성 테스트를 두 번 실시했다. 한번은 고성능(High Performance) 세팅이었고 한번은 저전력(Power Saver) 응용 모드였다.

동일 서버 조건 하에서, 저소음 상태일 경우 윈도 서버 2008은 리눅스보다 더 많은 전력을 소비했다. 단 한가지 예외가 있는데 델 서버에서 저전력 모드로 윈도 서버 2008을 구동했을 때만 리눅스 보다 전력 소모가 평균적으로 3% 가량 적었다.

이미 언급한 바와 같이 대부분의 경우 RHEL은 윈도 서버 2008 보다 전력을 덜 소비한다. 그러나 정말 강조하고 싶은 것은 본 테스트의 모든 저소음 상태 테스트에서 RHEL은 리눅스에 비해서도 전력을 덜 소모했다는 사실이다.

물론 이 경우에도 테스트 조건에 따라 전력 소모량에 차이가 있다. IBM 서버 상에서 시스템이 최고 성능을 발휘하도록 세팅됐을 때는 약 0.5 와트 차이가 났으며 HP DL-160G5 서버에서 저전력 모드로 세팅됐을 때는 약 5 와트가 차이났다.

이번엔 활성 테스트 결과다. 델 서버에서 윈도2008 서버는 리눅스 보다 평균 7% 이상 전력을 더 소모했다. IBM 서버와 HP DL-360G5 서버에서는 차이가 거의 없어서 리눅스가 최소로 소비한 전력과 윈도 2008 서버가 소모한 전력이 비슷했다.

활성 테스트 중, 고성능 테스트에서 윈도 서버 2008은 동일 서버에서 리눅스 평균치보다 약 11% 더 많은 전력을 소모했다.

서버 영향

앞서 언급한대로 이 테스트에는 각 제조사가 제공한 1U 유닛에 여러 가지 CPU와 하드 디스크를 구성한 것을 사용했다. 결과적으로 하드웨어에 따른 전력 절약 효과 차이는 그다지 크지 않았다.

물론 최적의 조건에서 각 제조사가 광고하는 전력 절감 효과는 있을 것이다. 그러나 이렇게 하려면 OS와 에너지 절약용 애플리케이션 모두를 세밀히 튜닝해서 부하가 각 코어에 효율적으로 할당되도록 해야한다.

사실, 코어 최적화 구성에 신경쓰는 것 보다는 OS 세팅에 노력을 기울이는 것이 낫다. 이번 테스트에서도 이 방법을 사용했다. 결과를 살펴보면 모든 테스트에 걸쳐, 조용한 상태든 응용프로그램이 구동되는 상태든 모든 코어가 적어도 조금씩은 사용됐기 때문이다. 모든 테스트에는 SMP 커널이 사용됐다.

IBM x3350이 가장 깔끔하고 그린컴퓨팅에 적합한 것으로 나타났다. 이 서버는 CPU의 전력(시간당 에너지 소비량) 및 전력량(소비된 전력 총량) 양 면에서 가장 뛰어났다. 저소음 상태 테스트에서는 성능 모드든 저전력 모드든, 세 OS 간의 소비 전력 차이는 2 와트 이하였다.

활성 테스트에서는, 성능 모드에서 윈도 서버 2008, SUSE, RHEL의 전력 소비는 각각 87.8, 79.6, 78.3 와트였다. 그러나 이 경우를 제외하고는 활성 테스트에서도 역시 전력 차이는 2와트 미만이었다.

델 1950은 듀얼코어일 때 전체적으로 더 많은 전력을 소비했지만 쿼드 코어일 때는 컴퓨팅 능력이 높아졌다. 저소음 상태 테스트 중 성능 모드에서 레드햇은 세팅 값을 제대로 수행하지 못하고 전력을 좀 더 소비했다. 이것은 저전력 모드에서 나타난 경향과 다른 것이다. 그러나 이 이외의 경우 레드햇은 세팅된 대로 잘 움직였다.

HP DL-160은 저소음 상태 테스트에서는 세팅 값에 따라 전력 소모에 큰 차이를 나타냈다. 또한 이 서버에서 성능 모드를 테스트했을 때 는 윈도 2008 서버가 가장 전력을 덜 소모하는 것을 나타났다.

DL-360G5의 전력 소모가 가장 높았다. 이 서버는 델 1950과 비슷한 경향을 보였다. DL-360G5와 델 1950의 CPU 수는 동일하다.

요약

MS, 레드햇, 노벨/SUSE 모두 저전력 및 그린 컴퓨팅 분야의 선도자라고 주장하고 있다. 하지만 이번 테스트 과정에서 우리는 결과를 도출하기 위해 일단 펌웨어, BIOS, 그리고 기타 업데이트부터 시작해야만 한다는 사실에 일단 실망하지 않을 수 없었다.

또, 물론 서버를 튜닝해서 최적의 저전력 소비 상태를 만들면 더 좋은 컴퓨팅 환경을 구성할 수는 있다. 하지만 이렇게 하기 위해서는 힘들고도 복잡한 구성(configuration) 변수들을 일일이, 그것도 계속해서 손봐야만 한다.

어쨌든 그린 컴퓨팅을 위한 서버를 구축하기 위해서는 각 서버 모델을 철저히 분석해야 하고 BIOS 세팅을 알맞게 해야 하고 서버가 OS와 칩셋을 제대로 인식하게 해야 한다. 이렇게 해야만 대략 5년 이후에 그린 컴퓨팅의 열매를 맛볼 수 있을 것이다.

저작권자 © 데일리그리드 무단전재 및 재배포 금지