VM에 노출 된 CPU 코어 수에 대한 최적 설정이 있습니까? 사용하여 사용자는 VM에 노출 된 CPU 수를

VirtualBox 및 다른 VM 소프트웨어를 사용하여 사용자는 VM에 노출 된 CPU 수를 지정할 수 있습니다. 필자는 Windows 7 64 비트가 기본적으로 실행되는 듀얼 코어 CPU와 VM으로 Ubuntu 9.04 64 비트를 사용합니다.

도움말 파일은이 값을 사용 가능한 물리적 코어의 수 위에 설정하지 않는 것이 좋습니다. 이것은 의미가 있습니다. 그렇다면 1 또는 2 개의 CPU 코어를 할당하는 것이 가장 좋습니다. 이것은 전적으로 CPU 부하에 좌우됩니까?



답변

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

가능한 경우는 게스트 OS를 쓰레기 (즉, TA)로 사용하는 대학에서 최종 사용자 인 경우 1 세 이상으로 설정할 수 있습니다.


답변

이 대답의 정보가 더 이상 올바르지 않습니다. . 엄격한 공동 스케줄의 시대에는 정확했지만 더 이상 그렇지 않습니다.

번영을 위해 아래에 답을 남기고 있지만, 현대 하이퍼 바이저에게는 정확한 대답을 의탁하지 마십시오.


너는해야한다. 모든 코어를 가상 시스템의 vCPU로 할당하십시오.

VM이 요청할 경우 어떤 CPU 시간, VM웨어 있다 둘 중 하나를 할당한다. 모든 vCPU 또는 없음 vCPU의

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

이것은 두 환경에서 절대적으로 성능을 망칠 것입니다.

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

일반적으로 (n / 2) 개 이상의 vCPU를 할당하지는 않지만 (실제로는 2 개) – 일반적으로 12 ~ 32 코어의 서버에 코어를 할당하면 큰 영향을 미치지 않고 많은 수의 vCPU를 할당 할 수 있습니다.


답변

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

에뮬레이터 설정 방법에 따라 말 그대로 가상 시스템의 성능의 절반이나 아무 것도하지 않거나 게스트 OS / 응용 프로그램이 스레드 스케줄링을 분할하는 방식에만 영향을 줄 수 있습니다.

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


답변

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

그러나 더 많은 코어 (멀티 스레드 프로그램, 많은 병렬 프로그램 등)를 활용할 수있는 방법으로 사용할 계획이라면 스토리가 더욱 복잡해집니다.
이전에 VM 용으로 CPU의 절반을 사용하는 것이 좋은 생각이라고 생각했습니다. 이것이 항상 최적이라고는 볼 수 없습니다.

확실히 할 수있는 유일한 방법은 벤치 마크를 실행하는 것입니다. 왜 그런지 모르지만 Core2 Quad 시스템 (VT-x 지원, 중첩 된 페이징, ..)에서 실제로 4 코어 중 1 개를 사용하면 성능이 향상됩니다 2 개 이상의 코어를 사용하는 것보다! 이 작업은 VM의 시작 시점과 컴파일 벤치 마크에서 볼 수 있습니다.

다른 하드웨어 결과는 다릅니다. 또한 i7에 8 개 코어가 있고 성능이 코어 수와 함께 더 좋게 조정됩니다 (4 개를 행복하게 사용함).

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


답변

OS의 스케줄러를 신뢰하고 VM을 실제 코어 수로 설정합니다. VM에서 사용 중일 때 항상 호스트가 유휴 코어를 갖기를 원한다면.


답변

이는 실제 시스템뿐만 아니라 가상 시스템에서도 수행하려는 작업에 따라 다릅니다. 호스트 운영 체제를 다른 작업에 사용하는 동안 가상 시스템을 사용해야하는 경우 VM에 두 개의 프로세서 코어를 사용하여 VM이 최대 부하에 도달하면 호스트에 두 개의 코어가 남아있게하는 것이 좋습니다. 반면에 VM에서 주로 작업하는 경우 모든 프로세서 코어를 사용할 수 있습니다.

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


답변

예, 나는 그것이 달려 있다고 말하고 싶습니다. 그러나 나는 내가하고 싶은 것을 말할 것이다. 직장에서 저는 쿼드 코어 CPU를 가지고 있습니다. 그래서 내 가상 이미지 (win7)에 두 개의 CPU를 할당했습니다. 그런 식으로 호스트 컴퓨터와 가상 컴퓨터를 동시에 사용할 수 있으며 각각 동일한 CPU 리소스를 사용할 수 있습니다.