Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 5.2. VMWare - 사용 후기. [링크 복사], [링크+제목 복사],
조회: 14136
글쓴 사람
정성태 (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)
13401정성태8/19/20233950닷넷: 2136. .NET 5+ 환경에서 P/Invoke의 성능을 높이기 위한 SuppressGCTransition 특성 [1]
13400정성태8/10/20233801오류 유형: 874. 파이썬 - pymssql을 윈도우 환경에서 설치 불가
13399정성태8/9/20233636닷넷: 2135. C# - 지역 변수로 이해하는 메서드 매개변수의 값/참조 전달
13398정성태8/3/20234540스크립트: 55. 파이썬 - pyodbc를 이용한 SQL Server 연결 사용법
13397정성태7/23/20234068닷넷: 2134. C# - 문자열 연결 시 string.Create를 이용한 GC 할당 최소화
13396정성태7/22/20233824스크립트: 54. 파이썬 pystack 소개 - 메모리 덤프로부터 콜 스택 열거
13395정성태7/20/20233628개발 환경 구성: 685. 로컬에서 개발 중인 ASP.NET Core/5+ 웹 사이트에 대해 localhost 이외의 호스트 이름으로 접근하는 방법
13394정성태7/16/20233589오류 유형: 873. Oracle.ManagedDataAccess.Client - 쿼리 수행 시 System.InvalidOperationException
13393정성태7/16/20233881닷넷: 2133. C# - Oracle 데이터베이스의 Sleep 쿼리 실행하는 방법
13392정성태7/16/20233750오류 유형: 872. Oracle - ORA-01031: insufficient privileges
13391정성태7/14/20233817닷넷: 2132. C# - sealed 클래스의 메서드를 callback 호출했을 때 인라인 처리가 될까요?
13390정성태7/12/20233637스크립트: 53. 파이썬 - localhost 호출 시의 hang 현상
13389정성태7/5/20233682개발 환경 구성: 684. IIS Express로 호스팅하는 웹을 WSL 환경에서 접근하는 방법
13388정성태7/3/20233918오류 유형: 871. 윈도우 탐색기에서 열리지 않는 zip 파일 - The Compressed (zipped) Folder '[...].zip' is invalid. [1]파일 다운로드1
13387정성태6/28/20233975오류 유형: 870. _mysql - Commands out of sync; you can't run this command now
13386정성태6/27/20234095Linux: 61. docker - 원격 제어를 위한 TCP 바인딩 추가
13385정성태6/27/20234284Linux: 60. Linux - 외부에서의 접속을 허용하기 위한 TCP 포트 여는 방법
13384정성태6/26/20234002.NET Framework: 2131. C# - Source Generator로 해결하는 enum 박싱 문제파일 다운로드1
13383정성태6/26/20233746개발 환경 구성: 683. GPU 런타임을 사용하는 Colab 노트북 설정
13382정성태6/25/20233798.NET Framework: 2130. C# - Win32 API를 이용한 윈도우 계정 정보 (예: 마지막 로그온 시간)파일 다운로드1
13381정성태6/25/20234224오류 유형: 869. Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
13380정성태6/24/20233610스크립트: 52. 파이썬 3.x에서의 동적 함수 추가
13379정성태6/23/20233634스크립트: 51. 파이썬 2.x에서의 동적 함수 추가
13378정성태6/22/20233519오류 유형: 868. docker - build 시 "CANCELED ..." 뜨는 문제
13377정성태6/22/20237440오류 유형: 867. 파이썬 mysqlclient 2.2.x 설치 시 "Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually" 오류
13376정성태6/21/20233802.NET Framework: 2129. C# - Polly를 이용한 클라이언트 측의 요청 재시도파일 다운로드1
1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...