it-swarm-korea.com

VM에 노출되는 CPU 코어 수에 대한 최적의 설정이 있습니까?

VirtualBox 및 기타 VM 소프트웨어를 사용하면 사용자가 VM에 노출되는 CPU 수를 지정할 수 있습니다. 특정 경우에는 Windows 7 64 비트가 실행되는 듀얼 코어 CPU가 있습니다. 기본적으로, Ubuntu 9.04 64 비트는 VM입니다.

도움말 파일은이 값을 사용 가능한 물리적 코어 수보다 높게 설정하지 않도록 제안합니다. 이것은 의미가 있습니다. 그렇다면 CPU 코어를 1 개 또는 2 개 할당하는 것이 가장 좋을까요? 이것이 전적으로 기본 CPU로드에 의존합니까?

23
sblair

그것은 전적으로 게스트 OS가하는 일에 달려 있습니다. 내 개인적인 경험에서 VM는 단일 프로그램 (빌드 서버, trac 서버, SVN 등)을 실행하고 있으므로 하나 이상으로 설정할 이유가 없습니다.

가능한 경우는 게스트 OS를 일회용 (즉, TA)으로 사용하는 대학의 최종 사용자 인 경우 1보다 높게 설정할 수 있습니다.

6
Nate

이 답변의 정보는 더 이상 정확하지 않습니다. 엄격한 공동 일정의 시대에는 정확했지만 더 이상 그렇지 않습니다.

번영을 위해 아래 답변을 유지하고 있지만 현대 하이퍼 바이저의 경우 정확하다고 믿지 마십시오.


절대 모든 코어를 가상 머신의 vCPU로 할당해야합니다.

VM 요청 any CPU 시간, VMWare has 중 하나를 할당하려면 all vCPU 또는 vCPU의 none.

이것이 의미하는 바는 4 코어 시스템에서 4 코어를 모두 할당하면 호스트 또는 게스트 중 하나만 프로세서 시간을 할당 할 수 있으며 동시에 둘 다 할당 할 수는 없습니다.

이것은 두 환경 모두에서 절대적으로 성능을 저하시킵니다.

홀수 개의 코어 (예 : 3)를 자유롭게 할당하십시오. 이상하게 느껴지지만 완전히 합법적 인 선택입니다.

일반적으로 저는 vCPU를 (n/2) 개 (귀하의 경우 2 개) 이상 할당하지 않습니다.하지만 일반적으로 코어가 12 개에서 32 개 사이 인 서버에 코어를 할당하며 큰 영향없이 많은 수의 vCPU를 할당 할 수 있습니다.

18
Mark Henderson

게스트 CPU에 노출 된 코어 수는 원하는만큼 성능에 영향을주지 않습니다. 단지 게스트 CPU가 "보는"코어의 양을 조정합니다.

에뮬레이터가 설정된 방식에 따라 말 그대로 가상 머신 성능의 절반이 될 수도 있고, 아무것도하지 않거나, 게스트 OS/애플리케이션이 스레드 스케줄링을 분할하는 방식에만 영향을 미칠 수 있습니다.

기본값으로 두는 것이 가장 좋습니다. 호스트 PC에서 성능 문제가 발생하는 경우 Windows 작업 관리자를 사용하여 프로세스 우선 순위를 간단히 조정할 수 있습니다.

3
Breakthrough

Nate가 언급했듯이 VM이 대부분 단일 스레드 프로세스를 실행하는 한, 둘 이상의 코어를 할당 할 이유가 거의 없습니다.

그러나 더 많은 코어 (다중 스레드 프로그램, 많은 병렬 프로그램, ..)에서 이점을 얻을 수있는 방식으로 사용하려는 경우 이야기가 더 복잡해집니다. 이전에 VM에 CPU의 절반을 사용하는 것이 좋은 생각이라고 가정했습니다. 이것이 항상 최적의 것은 아닙니다.

확인하는 유일한 방법은 벤치 마크를 실행하는 것입니다 .. 이유는 모르겠지만 Core2 Quad 시스템 (VT-x 지원, 중첩 페이징, .. 포함)에서는 실제로 4 코어 중 1 개를 사용하는 것이 더 좋습니다. 2 개 이상의 코어를 사용하는 것보다! VM의 시작 시간뿐만 아니라 컴파일 벤치 마크에서도 이것을 볼 수 있습니다.

다른 하드웨어에서는 결과가 다릅니다. 또한 코어가 8 개인 i7도 있으며, 코어 수에 따라 성능이 훨씬 더 향상되는 것 같습니다 (행복하게 4 개 사용).

내 팁 : 먼저 새 하드웨어를 벤치마킹하십시오.

3
Arnout

이는 가상 머신과 실제 머신에서 수행하려는 작업에 따라 다릅니다. 호스트 운영 체제를 다른 활동에 사용하는 동안 가상 머신을 사용해야하는 경우 VM에 대해 두 개의 프로세서 코어를 사용하여 호스트에 두 개의 프로세서 코어가 남아 있도록하는 것이 좋습니다. VM는 전체로드 상태입니다. 반면에 주로 VM에서 작업하는 경우 모든 프로세서 코어를 사용할 수 있습니다.

그러나 게스트가 한 번에 4 개의 코어를 모두 사용할 것으로 예상되지 않는 한 호스트 OS에서 계속 작업하면서 모두 안전하게 사용할 수 있습니다. 호스트 운영 체제에서 실행되는 동안 항상 VM 프로세스의 우선 순위를 조정할 수 있으며 시스템이 그에 따라로드 균형을 조정합니다.

1
bwDraco

저는 OS의 스케줄러를 신뢰하고 VM을 물리적 코어 수로 설정합니다. VM.

1
Andrew Coleson

예, 또한 상황에 따라 다릅니다. 그러나 나는 내가 선호하는 것을 말할 것입니다. 직장에서는 쿼드 코어 CPU가 있습니다. 따라서 가상 이미지 (win7)의 경우 두 개의 CPU를 할당했습니다. 이렇게하면 호스트 머신과 가상 머신을 동시에 사용할 수 있으며 각각 동일한 CPU 리소스를 갖습니다.

0
Joel Martinez