Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 5.2. VMWare - 사용 후기. [링크 복사], [링크+제목 복사],
조회: 14124
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13374정성태6/20/20233594오류 유형: 866. 파이썬 - <class 'AttributeError'> module 'flask.json' has no attribute 'JSONEncoder'
13373정성태6/19/20234876오류 유형: 865. 파이썬 - pymssql 설치 관련 오류 정리
13372정성태6/15/20233397개발 환경 구성: 682. SQL Server TLS 통신을 위해 사용되는 키 길이 확인 방법
13371정성태6/15/20233539개발 환경 구성: 681. openssl - 인증서 버전(V1 / V3)
13370정성태6/14/20233672개발 환경 구성: 680. C# - Ubuntu + Microsoft.Data.SqlClient + SQL Server 2008 R2 연결 방법 - TLS 1.2 지원
13369정성태6/13/20233487개발 환경 구성: 679. PyCharm(을 비롯해 JetBrains에 속한 여타) IDE에서 내부 Window들의 탭이 없어진 경우
13368정성태6/13/20233631개발 환경 구성: 678. openssl로 생성한 인증서를 SQL Server의 암호화 인증서로 설정하는 방법
13367정성태6/10/20233830오류 유형: 864. openssl로 만든 pfx 인증서를 Windows Server 2016 이하에서 등록 시 "The password you entered is incorrect" 오류 발생
13366정성태6/10/20233592.NET Framework: 2128. C# - 윈도우 시스템에서 지원하는 암호화 목록(Cipher Suites) 나열파일 다운로드1
13365정성태6/8/20233213오류 유형: 863. MODIFY FILE encountered operating system error 112(failed to retrieve text for this error. Reason: 15105)
13364정성태6/8/20234084.NET Framework: 2127. C# - Ubuntu + Microsoft.Data.SqlClient + SQL Server 2008 R2 연결 방법 [1]
13363정성태6/7/20233661스크립트: 49. 파이썬 - "Transformers (신경망 언어모델 라이브러리) 강좌" - 1장 2절 코드 실행 결과
13362정성태6/1/20233658.NET Framework: 2126. C# - 서버 측의 요청 제어 (Microsoft.AspNetCore.RateLimiting)파일 다운로드1
13361정성태5/31/20233984오류 유형: 862. Facebook - ASP.NET/WebClient 사용 시 graph.facebook.com/me 호출에 대해 403 Forbidden 오류
13360정성태5/31/20233343오류 유형: 861. WSL/docker - failed to start shim: start failed: io.containerd.runc.v2: create new shim socket
13359정성태5/19/20233646오류 유형: 860. Docker Desktop - k8s 초기화 무한 반복한다면?
13358정성태5/17/20234119.NET Framework: 2125. C# - Semantic Kernel의 Semantic Memory 사용 예제 [1]파일 다운로드1
13357정성태5/16/20233936.NET Framework: 2124. C# - Semantic Kernel의 Planner 사용 예제파일 다운로드1
13356정성태5/15/20234265DDK: 10. Device Driver 테스트 설치 관련 오류 (Code 37, Code 31) 및 인증서 관련 정리
13355정성태5/12/20234189.NET Framework: 2123. C# - Semantic Kernel의 ChatGPT 대화 구현 [1]파일 다운로드1
13354정성태5/12/20234315.NET Framework: 2122. C# - "Use Unicode UTF-8 for worldwide language support" 설정을 한 경우, 한글 입력이 '\0' 문자로 처리
13352정성태5/12/20234025.NET Framework: 2121. C# - Semantic Kernel의 대화 문맥 유지파일 다운로드1
13351정성태5/11/20234491VS.NET IDE: 185. Visual Studio - 원격 Docker container 내에 실행 중인 응용 프로그램에 대한 디버깅 [1]
13350정성태5/11/20233795오류 유형: 859. Windows Date and Time - Unable to continue. You do not have permission to perform this task
13349정성태5/11/20234127.NET Framework: 2120. C# - Semantic Kernel의 Skill과 Function 사용 예제파일 다운로드1
13348정성태5/10/20234037.NET Framework: 2119. C# - Semantic Kernel의 "Basic Loading of the Kernel" 예제
1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...