Virtual Box를 실행할 때 CPU 사용량을 줄이는 방법은 무엇입니까?


12

VirtualBox를 실행할 때 시스템에서 100 % CPU 사용에 문제가 있습니다. 자세한 내용은 다음과 같습니다.

내 시스템 정보 :

CPU 1 이름 : Intel (R) Pentium (R) 듀얼 CPU T2310 @ 1.46GHz
CPU 1 레벨 1 캐시 크기 : 32K 데이터 캐시. 32K 명령 캐시.

CPU 1 레벨 2 캐시 크기 : 1024K 통합 캐시.
CPU 1: 2926.20
CPU 2 이름 : 1.46GHz에서 인텔 펜티엄 듀얼 CPU T2310
CPU 2 레벨 1 캐시 크기 : 32K 데이터 캐시. 32K 명령 캐시.

CPU 2 레벨 2 캐시 크기 : 1024K 통합 캐시.

CPU 2: 2925.96
64 비트 CPU? 예!
총 메모리 : 2.0GB
총 스왑 : 6141MBytes


내 운영 체제 정보 :

쿠분투 OS 버전 : 11.04
커널 버전 : 2.6.38-8 일반
커널 아치 : i686
기본 쉘 : / bin / bash


내 가상 상자 설정 :

OS 유형 : Windows XP
비디오 메모리 : 32MB
가속 : 3D
기본 메모리 : 512MB

문제 세부 사항 :

내 VirtualBox에서 Windows XP를 실행할 때마다 거의 100 %의 CPU 사용량이 보입니다. 호스팅 된 Windows XP 버전에서 실행중인 프로그램이 없어도 시스템이 느려집니다.

설정을 연주 할 수있는 방법이 있는지 궁금해서 성능을 약간 향상시킬 수있었습니다. 내 PC는 Linux 운영 체제에서 비교적 빠릅니다. 더 나은 결과를 얻을 수 있도록 VirtualBox의 설정을 구성 할 때 따라야 할 몇 가지 팁이 있는지 알아야합니다.

모든 제안 / 아이디어는 높이 평가됩니다!


그렇다면 VM이 느리게 실행되거나 시스템이 완전히 작동한다는 의미입니까? 당신이 가진 CPU 다소 약하므로 VM을 실행할 때 CPU 가 100 %가되는지 궁금하지 않습니다.
slhck

CPU는 느리지 만 Athlon XP 2800+의 SUSE 호스트에서 문제없이 2GIB의 RAM으로 XP를 실행 했으며이 시스템은 내 시스템보다 몇 배 빠릅니다. VirtualBox와 XP를 문제없이 중립적으로 실행할 수 있어야합니다. 관련 컴퓨터 사양의 멋진 목록을 보려면 +1도 있습니다.
AndrejaKo

같은 컴퓨터의 여러 운영 체제에서 동일한 문제에 직면했습니다. 이전에는 Linux Mint, Ubuntu, Slax, Fedora를 사용했으며 CPU 사용량과 비슷한 문제가 발생했습니다. 그러나 VM의 설정을 "적절하게"조정할 수 있으면 성능을 약간 향상시킬 수 있습니다.
CompyingCyborg

현재 사용중인 임시 솔루션은 bash 명령을 실행하여 10 초마다 페이지 캐시, 덴 트리 및 inode를 해제하는 무한 루프입니다. 이 기묘한 기술을 사용하는 것이 올바른 방법은 아니지만 오히려 "해킹"을 사용한다고 생각한 후에 VM이 약간 숨을 쉴 수있었습니다.
CompyingCyborg

1
안타깝게도 T2310에는 가상화 확장 VT-x ( ark.intel.com/Product.aspx?id=32431 )가 없으므로 Virtualbox 는 소프트웨어를 사용하여 게스트가 수행 할 모든 높은 특권 CPU 호출을 포착합니다. Virtualbox 자체는 게스트 OS를 수용하기 위해 더 많은 CPU 전력을 사용합니다. 또한 게스트 OS에 1GB의 RAM을 제공하면
Virtualbox

답변:


5

위의 의견에 대해 T2310에는 http://ark.intel.com/Product.aspx?id=32431 의 CPU 데이터 시트에 따라 가상화 확장 (VT-x)이 부족합니다.

에서 이 위키 백과 문서 , 따라서 VM (및 호스트 CPU 사용량의 증가의 성능을 측정 가능한 성능 저하의 원인이 될 것입니다 세 가지 기본 가지가있다 :

  • 이진 변환은 POPF와 같은 특정 명령을 다시 작성하는 데 사용되며 링 0 위에서 실행될 때 자동으로 실패하거나 다르게 동작하는 일반적인 트랩 앤 에뮬레이션 가상화를 불가능하게합니다. 성능을 향상 시키려면 변환 된 기본 블록을 코드 패치 (예 : VxD에서 사용), 게스트 OS의 페이지 재사용 또는 자체 수정 코드를 감지하는 일관된 방식으로 캐시해야합니다.

  • 프로세서가 사용하는 많은 주요 데이터 구조는 섀도 잉해야합니다. 대부분의 운영 체제에서 페이징 된 가상 메모리를 사용하고 게스트 OS에 MMU에 직접 액세스 권한을 부여하면 가상화 관리자가 제어 권한을 잃게되므로 x86 MMU의 일부 작업은 게스트 OS 용 기술에서 기법을 사용하여 복제해야합니다. 새도우 페이지 테이블이라고합니다. 여기에는 액세스 시도를 트래핑하고 대신 소프트웨어에서 에뮬레이션하여 게스트 OS에서 실제 페이지 테이블 항목에 대한 액세스를 거부합니다.

  • I / O 장치 에뮬레이션 : 게스트 OS에서 지원되지 않는 장치는 호스트 OS에서 실행되는 장치 에뮬레이터로 에뮬레이션해야합니다.

게스트 운영 체제에는 필요한 권한있는 명령을 사용해야하는 작업에 대해 많은 내용이 들어 있으며 일반적으로 이러한 오버 헤드는 Intels VT-x 및 AMDs AMD-V 가상화 확장을 사용하여 크게 완화됩니다. 프로세서에는 이러한 확장 기능이 없으므로 캡처 및 에뮬레이션의 모든 작업으로 인해 성능이 약간 저하 될 수 있습니다.

나의 추천은 :

  • 가상 머신에 필요한 페이징 양을 최소화하는 데 필요한만큼의 메모리를 제공하려면 워크로드에 따라 1GB 이상이 필요할 수 있습니다.

  • 3D 드라이버에 대한 모든 호출을 에뮬레이션 계층을 통해 푸시해야하므로 프로세서에서 비용이 많이들 수 있으므로 3D 가속을 비활성화하십시오.

  • 게스트 운영 체제에 Virtualbox Guest Additions를 설치하면 가상 환경을 더 잘 지원하는 드라이버가 사용됩니다.

  • 게스트 운영 체제에서 화면 해상도 및 그래픽 옵션을 줄입니다.

  • 네트워크 (인터넷)에 대한 합리적인 수준의 액세스를 유지하십시오. 네트워크에 바운드 된 가상 머신은 VT-x에서도 비싸고 VT-d (직접 I / O에 대한 가상화 기술)의 이점을 얻을 수 있으며 프로세서에서도 지원하지 않습니다.


2

내 대답은 질문의 다른 텍스트가 아니라 질문의 제목에만 관련됩니다. 더 많은 가상 게스트와 함께 유휴 CPU 사용에 중점을 둡니다 (호스트에 충분한 여유 공간이 있음).

audiodg.exeVirtualBox를 실행할 때 Windows 호스트의 프로세스로 인해 발생하는 CPU 사용량 은 iddle guest 자체의로드보다 높습니다. 오디오 탭의 가상 상자 게스트 설정에서 오디오 확인란 을 비활성화하여 쉽게 줄이거 나 완전히 제거 할 수 있습니다 . (닫힌 Virt. 컴퓨터에서만 비활성화 할 수 있습니다.)

audiodg.exe 프로세스는 한 명의 게스트에 대해 약 5 %의 CPU를 소비하지만 소스 편집과 같은 일반적인 유휴 작업 중에 랩톱에 중요한 부하가되며 CPU 주파수 (80 % ~ 40 % 감소), 팬 속도에 큰 영향을 미칩니다. 노트북의 배터리 수명. 실행중인 많은 가상 머신은 일반적으로 사운드가 필요하지 않거나 가끔 만 필요합니다. (게스트 OS에서 오디오를 비활성화해도 아무런 효과가 없었으며 가상 머신을 일시 중지하지는 않았지만 virtualbox 게스트 설정이 중요합니다.)

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