VirtualBox 및 기타 VM 소프트웨어를 사용하면 사용자가 VM에 노출되는 CPU 수를 지정할 수 있습니다. 특정 경우에는 Windows 7 64 비트가 실행되는 듀얼 코어 CPU가 있습니다. 기본적으로, Ubuntu 9.04 64 비트는 VM입니다.
도움말 파일은이 값을 사용 가능한 물리적 코어 수보다 높게 설정하지 않도록 제안합니다. 이것은 의미가 있습니다. 그렇다면 CPU 코어를 1 개 또는 2 개 할당하는 것이 가장 좋을까요? 이것이 전적으로 기본 CPU로드에 의존합니까?
그것은 전적으로 게스트 OS가하는 일에 달려 있습니다. 내 개인적인 경험에서 VM는 단일 프로그램 (빌드 서버, trac 서버, SVN 등)을 실행하고 있으므로 하나 이상으로 설정할 이유가 없습니다.
가능한 경우는 게스트 OS를 일회용 (즉, TA)으로 사용하는 대학의 최종 사용자 인 경우 1보다 높게 설정할 수 있습니다.
이 답변의 정보는 더 이상 정확하지 않습니다. 엄격한 공동 일정의 시대에는 정확했지만 더 이상 그렇지 않습니다.
번영을 위해 아래 답변을 유지하고 있지만 현대 하이퍼 바이저의 경우 정확하다고 믿지 마십시오.
절대 모든 코어를 가상 머신의 vCPU로 할당해야합니다.
VM 요청 any CPU 시간, VMWare has 중 하나를 할당하려면 all vCPU 또는 vCPU의 none.
이것이 의미하는 바는 4 코어 시스템에서 4 코어를 모두 할당하면 호스트 또는 게스트 중 하나만 프로세서 시간을 할당 할 수 있으며 동시에 둘 다 할당 할 수는 없습니다.
이것은 두 환경 모두에서 절대적으로 성능을 저하시킵니다.
홀수 개의 코어 (예 : 3)를 자유롭게 할당하십시오. 이상하게 느껴지지만 완전히 합법적 인 선택입니다.
일반적으로 저는 vCPU를 (n/2) 개 (귀하의 경우 2 개) 이상 할당하지 않습니다.하지만 일반적으로 코어가 12 개에서 32 개 사이 인 서버에 코어를 할당하며 큰 영향없이 많은 수의 vCPU를 할당 할 수 있습니다.
게스트 CPU에 노출 된 코어 수는 원하는만큼 성능에 영향을주지 않습니다. 단지 게스트 CPU가 "보는"코어의 양을 조정합니다.
에뮬레이터가 설정된 방식에 따라 말 그대로 가상 머신 성능의 절반이 될 수도 있고, 아무것도하지 않거나, 게스트 OS/애플리케이션이 스레드 스케줄링을 분할하는 방식에만 영향을 미칠 수 있습니다.
기본값으로 두는 것이 가장 좋습니다. 호스트 PC에서 성능 문제가 발생하는 경우 Windows 작업 관리자를 사용하여 프로세스 우선 순위를 간단히 조정할 수 있습니다.
Nate가 언급했듯이 VM이 대부분 단일 스레드 프로세스를 실행하는 한, 둘 이상의 코어를 할당 할 이유가 거의 없습니다.
그러나 더 많은 코어 (다중 스레드 프로그램, 많은 병렬 프로그램, ..)에서 이점을 얻을 수있는 방식으로 사용하려는 경우 이야기가 더 복잡해집니다. 이전에 VM에 CPU의 절반을 사용하는 것이 좋은 생각이라고 가정했습니다. 이것이 항상 최적의 것은 아닙니다.
확인하는 유일한 방법은 벤치 마크를 실행하는 것입니다 .. 이유는 모르겠지만 Core2 Quad 시스템 (VT-x 지원, 중첩 페이징, .. 포함)에서는 실제로 4 코어 중 1 개를 사용하는 것이 더 좋습니다. 2 개 이상의 코어를 사용하는 것보다! VM의 시작 시간뿐만 아니라 컴파일 벤치 마크에서도 이것을 볼 수 있습니다.
다른 하드웨어에서는 결과가 다릅니다. 또한 코어가 8 개인 i7도 있으며, 코어 수에 따라 성능이 훨씬 더 향상되는 것 같습니다 (행복하게 4 개 사용).
내 팁 : 먼저 새 하드웨어를 벤치마킹하십시오.
이는 가상 머신과 실제 머신에서 수행하려는 작업에 따라 다릅니다. 호스트 운영 체제를 다른 활동에 사용하는 동안 가상 머신을 사용해야하는 경우 VM에 대해 두 개의 프로세서 코어를 사용하여 호스트에 두 개의 프로세서 코어가 남아 있도록하는 것이 좋습니다. VM는 전체로드 상태입니다. 반면에 주로 VM에서 작업하는 경우 모든 프로세서 코어를 사용할 수 있습니다.
그러나 게스트가 한 번에 4 개의 코어를 모두 사용할 것으로 예상되지 않는 한 호스트 OS에서 계속 작업하면서 모두 안전하게 사용할 수 있습니다. 호스트 운영 체제에서 실행되는 동안 항상 VM 프로세스의 우선 순위를 조정할 수 있으며 시스템이 그에 따라로드 균형을 조정합니다.
저는 OS의 스케줄러를 신뢰하고 VM을 물리적 코어 수로 설정합니다. VM.
예, 또한 상황에 따라 다릅니다. 그러나 나는 내가 선호하는 것을 말할 것입니다. 직장에서는 쿼드 코어 CPU가 있습니다. 따라서 가상 이미지 (win7)의 경우 두 개의 CPU를 할당했습니다. 이렇게하면 호스트 머신과 가상 머신을 동시에 사용할 수 있으며 각각 동일한 CPU 리소스를 갖습니다.