Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 5.2. VMWare - 사용 후기. [링크 복사], [링크+제목 복사],
조회: 18411
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
부모글 보이기/감추기

VMWare로 만든 VM을 써본 간략한 후기를 적어봅니다. (따라서, 지극히 개인적인 의견입니다.)

우선, 제가 애용하는 터미널 서비스로 역시 이번에도 접속해서 사용해 보았고요. 이미 설명한 대로, 64bit Windows EE에 가상 2-way SMP, 메모리 1GB 설정으로 VM을 만들었습니다.
사실, 그 이외의 사양이라면 차라리 Virtual Server를 쓰는 것이 낫지요. 굳이 64bit 머신에서 WOW64를 통해서 VMWare를 구동시킬 필요는 없어보이니까요.

처음에는 64bit / 2way SMP에 대한 가상화에 대해서 무척 매력이 있다고 생각했는데요.
정작 사용을 해보니, MS VPC와 성능상으로 무척 대비가 되는 인상을 받게 되었습니다.
뭐랄까, Microsoft는 OS를 소유한 회사이니만큼 (느낌상, 근거 없음) 최적화를 했지만, VMWare는 그렇지 않다는 느낌을 받게 되는군요.

실제로, VM을 재부팅한다든가 할 때에 VMWare에서의 하드를 긁어대는 소리는 정말 위험하지 않을까 싶을 정도로 요란하더군요.
반면에 Virtual Server는 상당히 조용하게 재부팅이 이루어집니다.

또한, 가상 VM을 동작시키는 방식에서도 차이를 보이는 것이, VMWare는 하나의 "프로세스"로 띄워서 가상화 머신을 동작시키게 됩니다. 반면 VPC는 커널 측에서 VM을 처리하는 것으로 보입니다. 실제로, VM을 띄우는 2개의 환경이 Task Manager에서 다음과 같이 확인이 되어집니다.

[그림 1: Virtual Server의 프로세스 - 현재 VM 3개 떠 있는 상태]
VPC 프로세스

[그림 2: VMWare 프로세스 - 현재 VM 1개 떠 있는 상태]
VMWare 프로세스

한번 비교해 볼까요?
[그림 1]은 VM이 3개 떠 있는데도 그것을 커널상에서 처리하기 때문에 보이지 않는 것을 볼 수 있습니다. 실제로 VPC에 할당된 메모리조차도 작업 관리자에서는 보이지 않고 전체적인 메모리 사용률로만 알 수 있습니다.
반면에 [그림 2]는 VM이 한 개 떠 있는 vmware 처리 화면인데요. VM이 늘어날 수록 vmware-vmx.exe*32 프로세스가 하나씩 추가되게 됩니다. 메모리 역시 VM에 할당한 메모리로 늘어납니다.

조금 사용하다 보니, MS Virtual Server와 비교해서 너무나 잦은 디스크 액세스와 CPU 점유로 인해서 도저히 ^^; 짜증이 나서 못 쓰겠습니다.
때때로, 해당 VM의 잦은 디스크 액세스와 CPU 소모율로 인해서 VM 머신은 물론이고, 심지어 Host OS에 대한 터미널 세션에서의 UI 반응까지도 급격히 저하시키는 현상이 발생하곤 합니다.

그리고, 가끔씩 아래와 같은 이해할 수 없는 현상이 발생하는 것도 있습니다.

[그림 3: VMWare 프로세스 소모 - VM은 아무런 동작도 하지 않고 있는 중]
VMWare 프로세스

위의 그림에서 보시는 것처럼 CPU 소모가 77%를 차지하고 있습니다. 이런 현상이 제법 오래 지속되는데 그 이유를 도저히 모르겠습니다. 해당 VM의 Guest OS의 작업 관리자로 확인해 보면 어떠한 작업도 하지 않고 있음에도 불구하고 이렇게 Host OS의 CPU 자원을 잡아먹는 현상이 있는 것입니다.

CPU가 잠잠해졌을 때에도, 디스크 액세스는 꾸준히 발생합니다. 성능 모니터로 확인해 본 결과 꾸준히 Page Faults/sec가 발생하는 것을 확인할 수 있습니다.


결론적으로, 저는 VMWare 서비스를 내려버리고 말았습니다. 그나마 64bit VM 설치해 놓은 것이 아까워서 프로그램 삭제까지는 안했습니다.
VMWare의 Linux 버전에서는 어떨런지는 모르겠지만, 이렇게 심한 자원소모를 발생하는 VMWare가 어떻게 그렇게 높은 시장 점유율을 유지하는 지 다소 이해가 안되더군요.






[최초 등록일: ]
[최종 수정일: 12/2/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... [106]  107  108  109  110  111  112  113  114  115  116  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11274정성태8/22/201719453.NET Framework: 674. Thread 타입의 Suspend/Resume/Join 사용 관련 예외 처리
11273정성태8/22/201721640오류 유형: 415. 윈도우 업데이트 에러 Error 0x80070643
11272정성태8/21/201724851VS.NET IDE: 120. 비주얼 스튜디오 2017 버전 15.3.1 - C# 7.1 공개 [2]
11271정성태8/19/201719278VS.NET IDE: 119. Visual Studio 2017에서 .NET Core 2.0 프로젝트 환경 구성하는 방법
11270정성태8/17/201730746.NET Framework: 673. C#에서 enum을 boxing 없이 int로 변환하기 [2]
11269정성태8/17/201721510디버깅 기술: 93. windbg - 풀 덤프에서 .NET 스레드의 상태를 알아내는 방법
11268정성태8/14/201721104디버깅 기술: 92. windbg - C# Monitor Lock을 획득하고 있는 스레드 찾는 방법
11267정성태8/10/201725176.NET Framework: 672. 모노 개발 환경
11266정성태8/10/201724988.NET Framework: 671. C# 6.0 이상의 소스 코드를 Visual Studio 설치 없이 명령행에서 컴파일하는 방법
11265정성태8/10/201753216기타: 66. 도서: 시작하세요! C# 7.1 프로그래밍: 기본 문법부터 실전 예제까지 [11]
11264정성태8/9/201724186오류 유형: 414. UWP app을 signtool.exe로 서명 시 0x8007000b 오류 발생
11263정성태8/9/201719643오류 유형: 413. The C# project "..." is targeting ".NETFramework, Version=v4.0", which is not installed on this machine. [3]
11262정성태8/5/201718274오류 유형: 412. windbg - SOS does not support the current target architecture. [3]
11261정성태8/4/201720849디버깅 기술: 91. windbg - 풀 덤프 파일로부터 강력한 이름의 어셈블리 추출 후 사용하는 방법
11260정성태8/3/201718972.NET Framework: 670. C# - 실행 파일로부터 공개키를 추출하는 방법
11259정성태8/2/201718202.NET Framework: 669. 지연 서명된 어셈블리를 sn.exe -Vr 등록 없이 사용하는 방법
11258정성태8/1/201719047.NET Framework: 668. 지연 서명된 DLL과 서명된 DLL의 차이점파일 다운로드1
11257정성태7/31/201719188.NET Framework: 667. bypassTrustedAppStrongNames 옵션 설명파일 다운로드1
11256정성태7/25/201720668디버깅 기술: 90. windbg의 lm 명령으로 보이지 않는 .NET 4.0 ClassLibrary를 명시적으로 로드하는 방법 [1]
11255정성태7/18/201723237디버깅 기술: 89. Win32 Debug CRT Heap Internals의 0xBAADF00D 표시 재현 [1]파일 다운로드3
11254정성태7/17/201719619개발 환경 구성: 322. "Visual Studio Emulator for Android" 에뮬레이터를 "Android Studio"와 함께 쓰는 방법
11253정성태7/17/201719994Math: 21. "Coding the Matrix" 문제 2.5.1 풀이 [1]파일 다운로드1
11252정성태7/13/201718498오류 유형: 411. RTVS 또는 PTVS 실행 시 Could not load type 'Microsoft.VisualStudio.InteractiveWindow.Shell.IVsInteractiveWindowFactory2'
11251정성태7/13/201717199디버깅 기술: 88. windbg 분석 - webengine4.dll의 MgdExplicitFlush에서 발생한 System.AccessViolationException의 crash 문제 (2)
11250정성태7/13/201720756디버깅 기술: 87. windbg 분석 - webengine4.dll의 MgdExplicitFlush에서 발생한 System.AccessViolationException의 crash 문제 [1]
11249정성태7/12/201718590오류 유형: 410. LoadLibrary("[...].dll") failed - The specified procedure could not be found.
... [106]  107  108  109  110  111  112  113  114  115  116  117  118  119  120  ...