![kvm 기반 게스트 VM에서 하이퍼스레딩을 사용하는 방법은 무엇입니까?](https://linux55.com/image/168732/kvm%20%EA%B8%B0%EB%B0%98%20%EA%B2%8C%EC%8A%A4%ED%8A%B8%20VM%EC%97%90%EC%84%9C%20%ED%95%98%EC%9D%B4%ED%8D%BC%EC%8A%A4%EB%A0%88%EB%94%A9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
게스트 OS 내부에 가상 OS 스레드를 생성하고 있지만 실제 물리적 코어는 호스트 시스템에 있습니다. hyperthread = true
게스트 VM 구성이 다른가요?
물리적 코어가 있기 때문에 호스트에서 하이퍼스레딩이 어떻게 작동할지 상상할 수 있지만 VM은 이미 OS 스레드를 가상화하므로 VM 내부의 하이퍼스레딩을 상상하기 어렵습니다.
누군가 나에게 그것이 무엇인지 설명해 줄 수 있습니까?
답변1
나는 이것이 KVM 스케줄링 설정이라고 생각합니다. 일반적으로 CPU 토폴로지를 설정하여 이를 조정할 수 있습니다. HT "Core"는 속도가 느리므로 이 설정을 설정하면 안 됩니다. 그 이유는 에뮬레이션/가상화된 스레드가 실제 코어로 이동하기 때문입니다. 그게 더 빠릅니다.
저는 고도로 맞춤화된 virsh XML을 가지고 있는데 여러분이 기대할 수 있는 최대값을 말씀드릴 수는 없습니다. 가상 스레드 성능이 25% 향상되었습니다. 추가하면! 전체적으로 이는 스레드가 실제 코어가 아닌 가상 코어에서 실행되면 75%의 손실이 발생함을 의미합니다. 이 예는 최대한 활용하는 것을 의미합니다.
답변2
하이퍼스레딩의 차이점은 전적으로 가상 머신에서 실행할 애플리케이션에 따라 다릅니다. 하지만 한 가지 확실한 점은 하이퍼스레딩이 여러 CPU 코어에 부하를 분산시키는 데 도움이 된다는 것입니다.