가상 머신에서 CPU 속도를 제한합니까?


29

가상 머신에서 CPU 속도를 제한하는 방법을 아는 사람이 있습니까? 또는이를 수행 할 수있는 가상화 소프트웨어가 있다면?

내가 가지고있는 특정 OS 이미지가 주어지면 시스템의 최소 요구 사항을 찾으려고합니다. RAM과 하드 디스크 크기 및 코어 수를 제한하는 방법을 알고 있지만 실제로 시스템 구성을 시뮬레이션하려면 CPU를 800MHz로 느리게해야합니다. 또한 가상 머신을 실행하는 컴퓨터는 Windows 7 머신입니다.

답변:


21

나는 같은 문제를 겪었고 Windows 7 (호스트)과 Ubuntu (게스트)에 Oracle VirtualBox를 설치했습니다. 1.87 GigHZ 및 8Gig RAM에서 실행되는 Intl Core i7과 함께 독립형 랩톱 인 HP EliteBook 8540W를 사용했습니다.

설치가 제대로 작동한다고 가정하면 게스트 컴퓨터 (예 : 우분투)에서 기본 메뉴의 "기계"에서 "설정 ..."을 선택하십시오. "시스템"을 선택하고 "프로세서"탭을 클릭하십시오. 막대의 표시기를 1 % 아래로 밀어서 클럭 속도 ( "Execution Cap"로 표시)를 조정할 수 있습니다.

호스트 OS (필자의 경우 Windows 7)가 클럭 사이클을 소비하지 않는다고 가정했습니다 ( "작업 관리자"를 확인하여이를 확인했으며 호스트 시스템 (예 : Windows 7)에서 ZERO CPU 사용률을 찾았습니다). 따라서 100 % "실행 캡"은 호스트 시스템과 동일하다고 가정했습니다 (예 : 1.87 GigHZ). 호스트 머신 클럭 속도와 800MHZ 사이의 백분율을 취하면 800MHZ에 해당하는 백분율 값을 파악할 수 있다고 생각합니다.

이게 도움이 되길 바란다.

행운을 빌어 요.


9

VMWare ESX 및 ESXi에서 자원 풀을 작성하고 해당 풀의 CPU 자원을 제한 할 수 있습니다. 이를 통해 해당 리소스 풀에서 생성 된 모든 시스템의 CPU 속도를 제한 할 수 있습니다.


리소스 풀 옵션에 대해 읽고 플레이어에 적용되었다고 생각했습니다. 슬프게도, 그렇지 않습니다. 그리고 ESX / ESxi는 무료가 아닙니다 ... 그러나 시험판을 사용해 볼 수 있으며 실제로 작동한다면 좀 더 살펴보십시오.
RCC

6
ESXi는 무료입니다. (그리고 더 많은 캐릭터들 ...)
Tarnay Kálmán

정말? 어떤 이유로 나는 생각하지 않았다. 그러나 나는 정정되었다! 지적 해 주셔서 대단히 감사합니다.
RCC


2

다양한 가상화 기술에 대한 전문가는 아니지만 그러한 설정을 찾을 수 없을 것 같습니다. 그러나 가상 컴퓨터를 전체 호스트 컴퓨터 작업의 백분율로 제한 할 수있는 설정 (적어도 MS hyper-V)이 있습니다. 따라서 2GHz에서 8 코어 호스트를 실행하는 경우 클라이언트 가상 머신을 하나의 코어로 제한 할 수 있으며 코어의 45 %를 넘지 않아야합니다.

그러나 타이밍 루프 또는 실제 프로세서 속도가 작동하는 것을 테스트하려는 경우 매우 조잡하고 적합하지 않습니다.


프로세스 당 CPU 사용률을 제한하는 몇 가지 프로그램을 보았지만 Linux 옵션 만 보았습니다. 물론, 나는 그것들을 많이 보지 않았습니다. MaxMackie에 대한 응답에 설명 된대로 시도한 솔루션이 작동하지 않으면 이러한 옵션을 자세히 살펴 보겠습니다.
RCC

예, 타이밍 루프에 나쁜 영향을 줄 수 있습니다. 그것은 최대 45 %의 최고 속도로 실행되는지 여부에 따라, 또는 실제로 45 %로 실행되는지에 달려 있습니다.
Zan Lynx

2

--cpuexecutioncap <1-100> :이 설정은 가상 CPU가 사용할 수있는 CPU 시간을 제어합니다. 값이 50이면 단일 가상 CPU가 단일 호스트 CPU의 최대 50 %를 사용할 수 있음을 의미합니다.


1
자세한 정보는이 답변을 수용 할 수있게합니다.
Ramhound

1

이것이 VirtualBox에서 지원되지 않음을 확인할 수 있습니다. 그러나 VMware가이 작업을 수행 할 수 있는지 여부에 대한 문서는 충분한 것으로 보입니다.

편집 : VMware의 경우 : "플레이어 및 서버 제품에서는 불가능하지만 ESXi (무료"베어 메탈 하이퍼 바이저 "제품) 및 VMWare Workstation과 같은 유료 제품에 있다고 생각합니다."


나는 또한 확인 할 수 있습니다-나는 VirtualBox에 모든 것을 설정 한 다음 그것을 발견했습니다. 현재 VMware를 사용하고 있으며 config.ini 파일을 수정하여 host.cpukHz를 800000으로 제한하려고 시도했습니다. 이는 가상 시스템을 CPU MHz가 800이라고 생각하도록 스푸핑하는 것으로 보입니다. 이것이 실제로 원하는 작업을 수행할지 확실하지 않습니다. 그러나 그것은 내가 바라고있는 것입니다. 아이디어?
RCC

내가 본 것에서 그것은 작동해야합니다. 동일한 구성 파일에서 host.noTSC = "TRUE"로 설정하십시오. 이것은 CPU 클럭을 조절하여 속도가 느려지지 않도록합니다. 또한 게스트 운영 체제에서 옵션 탭으로 이동하여 가상 머신과 호스트 운영 체제 간의 시간 동기화가 선택되어 있는지 확인하십시오.
n0pe

예, host.noTSc = "TRUE"도 있습니다. 그래도 vmware 플레이어에서 vm과 호스트 간의 시간 동기화를 활성화 할 위치를 찾을 수 없었습니다.
RCC

게스트 OS에서 실행해야한다고 확신합니다
n0pe

1

CPU 고정으로이를 시뮬레이션 할 수 있습니다. 그런 다음 동일한 CPU에 고정 된 일부 CPU 바운드 프로세스를 작성하십시오. 예상 CPU 속도는 (실제 CPU 속도 / 프로세스 수)입니다.

일부 리소스 제한 소프트웨어를 사용하면 리소스 비율을 제한 할 수 있습니다. 이렇게하면 CPU 속도를보다 쉽게 ​​제한 할 수 있습니다. 이렇게하려면 여분의 리소스에 대한 액세스를 비활성화해야합니다.


0

VirtualBOX에는 게스트 CPU가 사용할 수있는 호스트 CPU의 %를 구성 할 수있는 슬라이더가 있습니다. 이러한 비율은 각 코어에 적용됩니다.

VirtualBOX에는 각 코어마다 다른 속도로 멀티 코어를 시뮬레이션 할 수있는 방법이 없으며 모든 코어에 대해 하나의 슬라이더 만 있습니다.

슬라이더를 50 %로 설정하면 게스트 코어가 호스트 코어의 1/2 (코어 당 기본)에서 실행됩니다.

따라서 호스트에 데카 코어 (10 개 코어)가 있고 게스트 (3 개)에 트라이 코어가 있고 호스트가 YMHz로 실행되는 동안 XMHz로 게스트를 실행하려면 코어 수를 무시하여 백분율을 계산하십시오.

공식은 다음과 같습니다. Percent = 100 * X / Y

이것이 다른 사람들이 미래에 오는 데 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.