KVM 내부에서 실행할 때 Windows 성능을 향상시키는 방법


14

Ubuntu 12.04 64 비트 및 KVM을 사용하며 CPU는 Core i5 3.3GHz이며 8GB의 DDR3 RAM이 있습니다. KVM에서 Windows 7을 실행하는데 속도가 매우 느립니다. 동료는 동일한 PC 구성에서 Debian을 사용하며 Windows 7을 매우 빠르게 실행할 수 있습니다! 내 문제는 어디에 있습니까?

[guyfawkes@guyfawkes-pc ~/work]$ sudo cat /etc/libvirt/qemu/windows.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE 
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit windows
or other application using the libvirt API.
-->

<domain type='kvm'>
  <name>windows</name>
  <uuid>5c685175-baea-0ca6-591f-8269d923ffb8</uuid>
  <memory>2097152</memory>
  <currentMemory>2097152</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-1.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/windows.img'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:94:63:91'/>
      <source network='default'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes'/>
    <sound model='ich6'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </sound>
    <video>
      <model type='vga' vram='262144' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
</domain>

UPD : KVM을 설치하기 전에 Intel-VT를 활성화했습니다. VirtIO 드라이버를 성공적으로 설치했는데 몇 가지 성능을 제공했지만, 예를 들어 Windows에서 Firefox를 열 때 마우스도 매우 느리게 이동하고 GUI도 매우 느립니다.

KVM 가상 머신 관리자


CPU가 VT 기술을 지원합니까?
데이지

네, 그것은 않습니다 :)
Guy Fawkes

1
Thx-스토리지 형식 : raw-캐시 모드 : 없음 (기본값은 아님)-I / O 모드 : 기본-+ 디스크 버스 : SATA가 수행했습니다. Win7 설치 중 "Windows 파일 확장"은 몇 시간 동안 @ 0 % 정도 걸리지 않고 변경 직후에 시작되었습니다. SATA NATIVE 및 Caching (Writeback)을 사용하여 처음 시도했을 때 캐싱을 비활성화하는 이유가 궁금합니다. 캐싱이 NONE으로 설정된 SATA NATIVE가 분명히 해결했습니다 ... 일반적으로 후기 입 캐싱?

이 응용 프로그램의 이름은 무엇입니까?
thiagowfx

@ThiagoPerrotta 그의 VIRT-관리자 (가상 컴퓨터 관리자)
doug65536

답변:


11

처음에는 IDE 버스를 에뮬레이트하도록 VM을 구성했습니다. SATA 버스로 변경해보십시오.

더 나은 방법 은 Windows 7에 virtio 드라이버 를 설치하고 virtio 버스로 변경하는 것입니다.

주 : Windows는 그 아래에서 변경되는 하드웨어에 대해 불평 할 수 있으며 IDE에서 SATA 또는 Virtio로 변경된 후 부팅 디스크를 찾는 데 어려움을 겪을 수 있습니다.

마찬가지로 NIC 유형을 virtio로 변경하면 네트워크 성능이 향상됩니다.

우분투에서 어떤 버전의 KVM과 커널을 사용하고 있습니까? 그리고 데비안에 어떤 버전이 있습니까?

확인해야 할 또 다른 사항은 동료가 VM과 동일한 디스크 이미지를 사용하고 있습니까, 아니면 원시 디스크 파티션이나 LVM 볼륨 등을 사용하고 있습니까? 디스크 이미지는 파티션 또는 LVM에 비해 매우 느립니다.


VirtIO 드라이버를 설치하는 방법을 설명 할 수 있습니까?
Guy Fawkes

실제로는 윈도우 드라이버가 아닙니다. 내 전문 분야가 아닙니다. Windows 드라이버가 설치되는 일반적인 방법으로 설치한다고 생각합니다. 1 ~ 2 년 전에 일부 Windows VM에 몇 번 설치했습니다. IIRC 그것은 CD 이미지를 마운트하고 하위 디렉토리 중 하나에서 설치 프로그램을 찾아서 클릭하는 것과 같이 서투른 것입니다.
cas

마이그레이션 된 기존 Windows 이미지에 VirtIO 드라이버를 추가 할 수 없었습니다. 디스크 버스 를 VirtIO 및 Windows로 다시 정의하면 시작되지 않습니다. 내가 허용하고 싶었던 올바른 Diskbus없이 VirtIO 드라이버를 설치하십시오.
Todd Partridge 'Gen2ly'11

실제로 당신은 그것을 할 수 있습니다 serverfault.com/questions/452854/…
Darokthar

1
즉, VM에 두 번째 디스크를 추가하고이를위한 virtio 드라이버를 설치해야합니다. 그런 다음 virtio를 사용하도록 원본 디스크를 전환하고 선택적으로 두 번째 디스크를 분리 / 삭제할 수 있습니다.
cas

13

또한 가상 HDD의 성능이 엄청나게 느려졌습니다.
새 HDD의 다음 설정으로 모든 것이 수정되었습니다.

  • 저장 형식 : 원시
  • 캐시 모드 : 없음 (기본값 아님)
  • I / O 모드 : 기본

저장 형식에 대한 훌륭한 지적. 파일 컨테이너 대신 원시 파티션을 사용하면 조금 더 향상 될 수 있습니다.
0xC0000022L

1
이것이 정답이어야합니다. qcow2는 포맷으로 잘 작동하지만 캐시와 네이티브는 크게 향상되지 않습니다.
John

9

IDE에 설치되어 있고 virtIO로 전환하고자하는 모든 사람에게 : 편리한 부팅 방법은 보조 (비 부팅) virtIO 디스크를 생성하고 VM을 부팅하는 것입니다.이 시점에서 Windows는 virtIO 드라이버를 요청합니다. 다른 방법으로 설치를 거부하고 이후 부팅 파티션을 virtIO로 전환합니다.


3

모든 대답을 사용하여 다음 순서로 내 길을 찾았습니다.

설치 :

Sergey와 같은 HDD 구성은 말했다. virt-manager를 사용하여 VM을 생성 할 때는 디스크를 즉시 생성하지 말고 ( "스토리지 활성화 ..."클릭) 다음 화면에서 "설치 전에 구성 사용자 정의"를 클릭하고이 옵션을 사용하여 직후에 HDD를 수동으로 생성하십시오 :

- Storage format: raw
- Cache mode: none (not default!)
- I/O mode: native
- + Disk bus : SATA

나를 위해, 설치는 15 분 이내에 완료됩니다 (기본 매개 변수를 사용하여 2H 이상 후 27 %가 아닌 진행)

최초 재부팅 :

- Disk bus : IDE (or windows will not boot)
- Installation of the [latest drivers][1] 
  (For that, devices management/install old components/type: storage)

시스템을 멈추고 디스크 버스를 virtio로 바꾸고 다시 부팅하십시오.

'기쁨!


1

Windows에서 VirtIO 드라이버를 설치해야합니다. Fedora에서 빌드 한 드라이버다운로드 하거나 소스에서 직접 빌드 할 수 있습니다. 자세한 내용은 KVM 설명서 를 참조하십시오 .


2
링크를 게시하지 말고 답변에 주요 요점을 직접 요약 한 후 추가 참조를위한 링크를 제공하십시오. 답변에 필요한 최소 종류에 대해서는 편집 내용을 참조하십시오. 또는 이 링크에 설명과 그 밖의 정보를 제공하는 Craig의 답변 을 참조하십시오 . 읽기 에 대답하는 방법에 대한 자세한 내용은.
Gilles 'SO- 악의를 멈춰라'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.