마이크로소프트2010. 7. 22. 17:22

많은 고객들이 Microsoft의 가상화, Hyper-V에 대해 제공되었으면 하는 부분이 바로 메모리에 관한 것 입니다.
”V사의 경우는 메모리 overcommit을 제공하는데, 왜 마이크로소프트는 동적인 메모리 할당을 제공하지 않는가?”

그런데 실제로 사용하시는 모습을 보면 메모리 overcommit을 켜놓고 쓰는 경우는 거의 보지 못했습니다. 성능 저하가 일어난다는 사실을 알고 계시기 때문입니다. 

메모리 overcommit이란? 실제 물리적 서버에 4G의 메모리가 있을 때 가상 서버가 1G의 메모리를 사용한다면, 4개의 가상 서버를 구동하면 물리적인 4G가 다 점유됩니다. 실제로는 더 이상의 가상서버에 메모리 할당이 불가능한데, 이 것을 실제로는 더 적게 사용하는 것처럼 하면서 5번째 가상서버, 6번째 가상서버에 1G 씩의 메모리를 더 붙여주는 것을 의미합니다. 굉장히 좋아 보이지만, 득과 실이 있는 것은 당연한 법, 성능 저하가 발생한다는 것이죠. 그것도 심하게 …

마이크로소프트에서는 메모리를 유연하게 사용하도록 해주지만, 위와 같이 메모리 overcommit이 아닌 Dynamic Memory라는 개념을 사용했습니다. 물리적인 서버가 가지고 있는 메모리를 하나의 Pool 개념으로 이용할 수 있게 하는 것입니다. 해당 가상머신(워크로드)의 부하가 달라지게 되는데요, 이 부하에 따라서 서비스를 중단하지 않고 더 많은 메모리를 할당해주고, 사용량이 줄어 들면 메모리를 회수하여 다른 가상머신이 사용할 수 있도록 해주는 개념이지요. 동적인 메모리 밸런싱이라고 보시면 될 것 같습니다. (물리적 머신의 최대 메모리 안에서만 자유롭게 할당, 회수가 일어납니다. overcommit은 사용하지 않습니다)

아래와 같은 그림으로 보시면 이해가 쉬울 것 같습니다. 처음 시작할 때는 1G로 시작하지만, 업무량이 많아지면 최대 64G까지 할당하겠다는 것이지요.

Dynamic Memory Settings Highlighted

자원을 사용량에 따라 유연하게 배부해주고, 사용량에 따른 비용 배부까지 가능해집니다. 클라우드 컴퓨팅의 기본 개념을 가상화 기술에 자연스럽게 접목한 것이지요.

image

시간대별로 업무량에 따라 사용량이 이렇게 달라지네요. ^^

출처: Technet Blog에서 가져왔습니다.

Posted by 조이트리