Qemu를 사용한 가장 빠른 사용자 모드 에뮬레이션 플랫폼?

Qemu를 사용한 가장 빠른 사용자 모드 에뮬레이션 플랫폼?

나는 사용자 모드 qemu에서 Linux를 실행할 계획이지만 어떤 플랫폼(예: x86, PPC 등…)을 선택하는 것이 가장 좋은지 모르겠습니다(성능 측면에서).

호스트는 OpenVZ에서 실행되는 Linux x86-64이므로(커널을 수정할 수 없음), 제가 이해한 바로는 가상화를 사용할 수 없으며 사용자 모드 에뮬레이션만 사용할 수 있습니다.

이러한 상황에서 서로 다른 CPU를 에뮬레이션하면 성능에 큰 차이가 있습니까? x86-64가 가장 좋은 옵션처럼 들리지만, 순수하게 에뮬레이트할 경우 더 효율적인 플랫폼이 있습니까?

답변1

기본 CPU(x86)를 사용하는 것이 다른 CPU를 에뮬레이션하는 것보다 항상 빠릅니다. Qemu가 여전히 구식 에뮬레이션(KVM이 등장하기 전)을 할 수 있다면 작동할 것입니다. 특별히 수정된 Linux 커널을 일반 프로세스(사용자 모드)로 실행하는 작업이 포함되므로 사용자 모드 Linux(UML)를 고려할 수도 있습니다. 이는 OpenVZ의 기능과 유사하지만 XEN, KVM, Virtualbox와는 달리 여러 계층을 중첩할 수 있습니다.

답변2

좋아요, 저는 다중 레이어에 대해 이야기하지 않기로 동의합니다... 그건 제쳐두고,

커널에 대한 액세스 권한이 없고 KVM으로 어떤 작업도 수행할 수 있는 능력이 없다고 가정합니다. 솔직히 가장 좋은 선택은 UML을 보는 것입니다. 이는 상황에서 적절한 성능을 얻을 수 있는 유일한 방법입니다. UML이 어떤 이유로든 수용 가능한 솔루션이 아닌 경우. 당신은 정말로 일반 오래된 chroot를 고려하고 싶을 수도 있습니다. 이러한 옵션은 QEMU와 달리 허용 가능한 수준에서 수행됩니다. 테스트/개발에서는 전체 에뮬레이션이 완벽하게 괜찮지만, 그 외의 경우에는 말도 안 되는 일입니다. 특히 고려할 때 이 모든 작업은 임대 VPS에서 수행됩니다.

새로운 커널 모듈을 추가할 수 있는 경우 기존 KQEMU + QEMU를 사용하면 어느 정도 가상화가 가능합니다. 또한 KVM이 등장하기 전에는 KQEMU와 QVM86이 QEMU 가상화를 위한 원래 방법이었다는 점을 언급하고 싶습니다. 또한 호스트를 에뮬레이션하면 손실이 최소화됩니다. qemu가 x86_64를 실행하는 경우 x86_64를 실행하세요.

관련 정보