가상 머신과 물리적 호스트의 성능 차이는 무엇입니까?

가상 머신과 물리적 호스트의 성능 차이는 무엇입니까?

제가 일하는 곳에서는 Debian Linux 배포판을 사용하여 상대적으로 강력한 PC를 실행하고 있습니다. 그러나 설치해야 하는 특정 프로그램의 경우 CentOS를 사용하는 것이 더 좋으며 이것이 우리의 주요 작업 도구가 됩니다. 직장에 있는 모든 컴퓨터의 OS를 변경하는 것이 가능하지만 VirtualBox를 사용하는 것이 단순성을 위해 더 나은 선택인지 결정하려고 노력하고 있습니다.

이 모든 것은 다음 사항에 달려 있습니다. 우리가 실행해야 하는 프로그램은 시뮬레이션이 시작될 때마다 최대 한 시간 이상 쉽게 실행할 수 있는 매우 프로세서 집약적인 작업인 시뮬레이터입니다. Virtual Box를 사용할 때 성능 저하가 OS 변경을 할 만큼 충분히 큰지 판단해야 합니다.

그래서 내 질문은 가상 상자에서 프로세서 집약적인 작업을 실행하는 것과 기본 PC에서 실행하는 것의 성능 저하가 무엇인지 검증할 수 있는 사람이 있는지 여부입니다.

감사해요.

답변1

숫자 처리 프로그램(매우 CPU 바인딩)의 경우 VM 성능 저하가 거의 0이 되어야 합니다. 지침은 호스트와 VM에 대해 동일하게 CPU에서 직접 실행됩니다.

심각한 컴파일 작업의 경우에도 성능 차이는 거의 눈에 띄지 않습니다. 우리는 Windows의 VMware에서 CentOS VM을 실행합니다.

호스트에서 Linux를 실행하고 있으므로 다음을 고려할 수도 있습니다.KVM(커널 가상 머신) VirtualBox 대신. 대부분의 최신 CPU에서 사용할 수 있는 Intel VT-x 가상화 확장을 사용하여 Linux에서 가상화 서비스를 제공하는 일련의 커널 모듈입니다. QEMU는 KVM을 가속기로 사용하여 호스트 CPU에서 직접 x86 코드를 실행합니다.

virt-manager시험해 보려면 을(를) 설치해 보세요 .

답변2

실제로 Docker가 현재 수행 중인 작업에 더 나은 옵션인 것처럼 들립니다. Docker는 동일한 커널 위에서 실행되는 격리된 샌드박스인 컨테이너를 제공합니다. 컨테이너 내 프로세스가 호스트의 프로세스와 다르지 않기 때문에 시스템 호출/IO 오버헤드는 0입니다.

이미 Linux를 실행하고 있으므로 Docker는 모든 시스템을 다시 설치하지 않고도 CentOS 환경을 제공할 수 있는 좋은 방법입니다.

또한 내 유틸리티를 확인해 보세요.스쿠버Docker 컨테이너 내에서 빌드와 같은 작업을 쉽게 실행할 수 있습니다. make달리는 대신에 scuba make. 그게 다야!

답변3

이에 대한 좋은 대답은 하나도 없습니다. VM을 사용하는 방법과 프로그램에 따라 많이 달라집니다.

예를 들어 VMWare(유형 2 하이퍼바이저)와 순수 CPU 바인딩 프로그램을 사용하면 거의 전체 CPU 속도를 얻을 수 있습니다. 시스템 호출이 많은 프로그램에 동일한 하이퍼바이저를 사용하면 심각한 속도 저하가 발생할 수 있습니다.

그리고 유형 1 하이퍼바이저(게스트 없음) OS를 사용하면 상황도 달라집니다. 그리고 그 사이에도 많은 변형이 있습니다. 예를 들어 Xen은 지원하는 5가지 모드(지난 주말 FOSDEM에서 Xen에 대한 대화의 IIRC) 모드를 지원합니다. HW 사용부터 파라 가상화까지.

요약하자면: 요청한 대로 속도가 거의 느려지지 않는 것부터 심각하게 느려지는 것까지 다양할 수 있습니다.


이제 VirtualBox에 초점을 맞추면 이는 유형 2 하이퍼바이저입니다. 순전히 CPU 바인딩된 프로그램은 괜찮을 것입니다.

관련 정보