저는 주력 OS를 우분투로 사용하고 있지만 당연히 Windows도 사용하고 있습니다. 몇몇 작업의 경우는 꼭 Windows가 필요하기도 하고 가끔 IE도 필요한 경우가 있어서 VirtualBox를 써서 가상으로 Windows를 이용하지요.


리눅스에서는 대부분 가상 머신 프로그램으로 VirtualBox를 사용하실 겁니다. VMware는 약간 배포판을 가리는 면이 있어서 간혹 에러가 나기도 하고 VirtualBox에 비해 메모리를 많이 먹는 편입니다. 대신 속도는 VMware가 이러나 저러나 훨씬 낫지요.


저는 VirtualBox를 쓸 때 설치 후에 어느정도 정리를 하고 스냅샷으로 일단 얼려둡니다. 이래야 나중에 가상머신이 병X이 되어도 그때의 스냅샷으로 돌아올 수 있으니까요. Windows내의 시스템 복원 기능이 있지만 가상머신에서는 쓰레기일 뿐입니다.


VirtualBox의 스냅샷 기능 이렇게 순차적으로 할 수도 있고 분기도 가능하다.

그런데 Windows란 녀석은 캐시 메모리를 많이 사용하는 편입니다. 2000시절에 추가된 기능이었던 Prefetch(Superfetch) 기능이 발전해서 사용자가 많이 사용하는 프로그램을 미리 메모리에 올려둔다던가 프로세스 우선순위를 자동으로 설정해 주는 등의 기능이 있습니다. 그래서 프로그램을 많이 설치하면 설치 할 수록 디스크의 공간을 예상 외로 많이 먹어버리고 메모리 사용량도 은근히 올라갑니다. 제가 스냅샷을 걸어두는 이유 중 하나가 바로 이것인데요. Windows의 Prefetch는 쓰면 쓸 수록 디스크에 각종 캐시 들을 쌓아둡니다. 프로그램의 각종 데이터나 라이브러리 등을 올려두는 것인데요. 문제는 이 기능이 일반적인 디스크에서 돌아갔다면 문제가 없었을 겁니다. 그런데 가상 머신은 가상 디스크 이미지를 만들고 이 안에 파일을 넣어두는 방식을 취합니다. 보통 디스크 이미지는 동적 할당 방식을 사용해서 200GB짜리 이미지를 만들어도 200GB를 사용하지 않습니다. 디스크의 내용이 변동 되었으면 변동 된 만큼을 그냥 추가합니다. 나중에는 썼다 지웠다를 반복하면서 200GB를 넘기기도 합니다. 이러면 정작 호스트인 우분투의 디스크 용량이 나중에는 당연히 부족해 집니다.


그래서 VirtualBox에서는 VBOXManage -compact 명령을 준비해 두었지만 완벽하지는 않습니다. 그냥 뱃속 편하게 고정 할당을 하는게 이 문제에서 벗어 날 수 있는 방법이지만 스냅샷을 걸 때마다 고정 할당량 X 스냅샷 갯수 만큼 먹어버리는 문제가 또 있습니다. (어쩌라고...)


솔직히 Prefetch는 굉장히 좋은 기능입니다. 이 기능 덕에 지금의 Windows10이 Windows7보다도 저 사양의 PC에서 더 쌩쌩하게 돌아갈 수 있는 것 입니다. 하지만 지금은 그냥 혹 덩어리 입니다. 문제아일 뿐입니다. 이것을 해결하는 가장 쉬운 방법으로 게스트 OS가 Win7이상이라면 SSD 옵션을 걸어두면 됩니다. (자동으로 Prefetch를 안 씁니다.)이러면 한방에 해결이 됩니다. 혹은 

http://www.technipages.com/windows-enable-disable-superfetch


여기에 나온 것처럼 Superfetch와 Prefetch를 꺼버리면 됩니다. 그러면 VirtualBox의 문제가 약간은 해결될 것입니다.



,