QEMU의 성능 (여전히)이 VirtualBox보다 지연되고 하드웨어 지원 + kvm 커널 모듈없이이를 개선 할 수있는 방법이 있습니까?


9

QEMU가 VirtualBox보다 느리다고 주장하는 몇 가지 기사를 보았습니다 (하드웨어 지원 없음).

  • QEMU가 VirtualBox보다 느리다는 것이 사실입니까?
  • 그렇다면 왜?
  • 성능 격차를 해소하는 요령이 있습니까?

일부 호스트 시스템에는 하드웨어 가상화 지원이 없으므로 커널 모듈없이 작동하는 성능 팁에 특히 관심이 있습니다.

답변:


9

x86 호스트에서 x86 가상화에 대해 이야기하는 경우 kqemu (qemu의 이전 가속 커널 모듈)는 더 이상 사용되지 않습니다. 커널 가상 머신 (KVM)은 "앞으로의 길"이지만 Linux 호스트에서만 작동합니다. 게스트는 x86 아키텍처 인 한 원하는 OS가 될 수 있습니다.

교차 아키텍처, qemu는 여전히 느리다. 방금 오늘 게스트에서 데비안 MIPS64와 함께 최신 qemu를 시도했습니다 .... 터미널에서 사용할 수 있었지만 Xorg에서는 엄청나게 느 렸습니다. 내가 아는 한, 교차 아키텍처를 진행할 때 확장 페이지 테이블 또는 VT-x와 같은 프로세서 가속 명령을 사용할 수 없습니다. 모두 소프트웨어로 에뮬레이트됩니다.

따라서 x86에서 x86 가상화의 경우 "원시"qemu는 느리지 만 qemu 를 사용 하는 KVM 은 빠릅니다. 꽤 빠릅니다. RHEL을위한 Red Hat의 권장 가상화 솔루션입니다.

kvm은 서버 가상화에 초점을 맞추고 virtualbox는 데스크탑 가상화에 초점을 맞추기 때문에 VirtualBox는 하드웨어 가속 2d / 3d 그래픽 성능 측면에서 qemu / kvm이 제공 할 수있는 모든 것을 여전히 날려 버립니다. 그러나 서버를 다루는 경우 kvm을 확인하는 것이 좋습니다.

편집 : 하드웨어 가속이없는 호스트의 경우 사용하는 virt 솔루션에 관계없이 상당히 큰 오버 헤드가 발생합니다. 소프트웨어에서 하드웨어를 모방하는 것은 어렵고 비용이 많이 듭니다.


2
ls $(which kvm)에 대한 심볼릭 링크를 보여줍니다 qemu-system-x86_64. QEMU를 사용하여 KVM에 대해 정확히 이야기 한 것 같습니다.
Catskul

예, 그러나 이름에서 알 수 있듯이 KVM은 커널 기반 가상 머신입니다. 이는 하이퍼 바이저 내장이 커널 모듈 'kvm'에 있음을 의미합니다. 원하는 경우 이전 kqemu와 비슷하다고 생각할 수 있지만 아키텍처는 매우 다릅니다. kvm이 작동 중일 때 qemu는 실제 하이퍼 바이저보다 많은 프론트 엔드입니다.
allquixotic

오, 나는 덧붙였다 : qemu (그리고 다른 가상화 시스템)가 "커널 모듈"없이 (왜냐하면, 실제로 하드웨어 가속없이) 의미하는 하드웨어 작동이 느린 이유는 게스트 공연은 소프트웨어에서 에뮬레이션하기가 매우 어렵습니다. 글쎄, 신뢰할 수 없거나 복잡한 측면에서 어렵지 않습니다. 그냥 sloooooooooooooow. 그렇기 때문에 인텔은 10 년 동안 VT-x 및 EPT 방식으로 가장 느린 가상화 비트에 대한 하드웨어 가속 지침을 제공하는 데 더 많은 시간을 보냈습니다. 유일한 해결책은 이러한 명령어 세트를 지원하는 하드웨어를 사용하는 것입니다.
allquixotic

하드웨어 가속 없이도 virtualbox를 더 빠르게 만드는 것이 있습니까?
Catskul

아니요. 하드웨어 가속이 없으면 성능이 상당히 같아야합니다. VirtualBox는 소프트웨어에서 약간 더 빠르게 실행되도록하는 고급 x86 최적화 기능을 가지고있을 수 있습니다. 이는 virtualbox가 x86 만 지원하고 qemu는 훨씬 더 넓은 경기장 (비 x86 아키텍처)을 갖기 때문에 적합합니다. 그러나 이것은 기본적으로 로컬, 캐시 된 내부 루프, 수작업으로 코드화 된 어셈블러, 호스트 측 디스크 I / O 캐싱 또는 기타 트릭을 캐시하기 위해 구현 / 설계 세부 사항입니다.
vem

1

가상화 가능 CPU (Intel VT-x, AMD SVM)가있는 호스트를 커널에서 Qemu (KVM이있는 Linux)에서 실행한다고 가정하면 상당히 빠릅니다.

Qemu가 2D (YouTube, 스프레드 시트, 게임) 및 3D 에뮬레이션으로 인해 느려진 기술적 이유는 나에게 분명하지 않습니다. 그러나 "비디오 드라이버"로는 충분하지 않다고 추측 할 수 있습니다. 하드웨어의 그래픽 하드웨어는 최적의 방식으로 사용되지 않습니다.

밝은면에서 최근 개발은 SPICE 프레임 워크를 qemu에 도입했습니다. 실제로 그것은 몇 살이고 합리적으로 성숙해 보입니다. QXL 비디오 드라이버로 실행하면 비디오 성능이 크게 향상됩니다 (2D 웹 개발). 나는 그것이 Virtualbox와 얼마나 잘 비교되는지 모르겠지만 확실히 개선되었습니다. SPICE는 Qemu에서 Windows를 실행하는 모든 사람에게 반드시 필요한 것 같습니다.

이것은 전적으로 제 의견이며 게스트에서 3D 또는 비디오 재생을 시도조차 한 적이 없다는 점에 유의해야합니다.


1
"그래픽 지향 에뮬레이션"으로 3D 가속을 언급하면 ​​GPU를 CPU처럼 가상화 할 수 없기 때문입니다. 소프트웨어 에뮬레이션은 매우 느리기 때문에 현재 두 가지 솔루션이 있습니다. 1. API 통과 (예 : 게스트의 DirectX 통화는 호스트에서 DirectX 통화로 실행 됨) 2. VGA 통과 (실제 : 전체 그래픽 카드를 사용할 수 있음) 손님에게). QEMU는 # 2를 지원합니다.
Marcus

@Marcus Passthrough가가는 길입니다.
Ярослав Рахматуллин
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.