%EC%9D%98%20%ED%8A%B9%EC%A0%95%20VM%EC%97%90%20%EC%A0%84%EC%9A%A9%20vCPU%EB%A5%BC%20%ED%95%A0%EB%8B%B9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%EB%98%90%EB%8A%94%20%EC%9D%B4%EB%A5%BC%20%EC%88%98%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이 주제에 대해 내가 찾은 내용이 오래되었거나 불완전하거나 여러 가지 이유로 적합하지 않기 때문에 여기에 게시합니다.
나는 특정 vCPU를 특정 VM(가능한 최대 CPU 성능과 더 적은 CPU 차단/컨텍스트 스위치가 필요함)에 매핑하는 방법을 오랫동안 배우고 싶었지만, 동일한 노드에는 매핑할 수 없는 다른 VM이 있습니다. 고정된 코어에 액세스하고(특정 VM에만 액세스할 수 있어야 함) CPU 할당은 스케줄러에 의해 "기본적으로" 수행됩니다.
현재 내가 선택한 시스템은 일반적으로 pvetest 브랜치의 최신 버전과 최신 3.X 커널인 Proxmox(KVM만 사용)입니다.
특정 요구 사항에 따라 현재 시스템에서 이 작업을 수행하는 방법을 배우기보다는 다른 시스템으로 전환하거나 VM에 대한 CPU 할당을 고급 관리할 수 있는 하이퍼바이저로 전환하는 것을 고려할 것입니다. 유료 솔루션에 대한 내 예산은 처음부터 모두 제외하는 것은 아니지만 고려하기에 매우 저렴해야 합니다.
미리 감사드리며, 이에 대한 (가능한 많은) 답변이 다른 많은 사람들에게 유용하기를 바랍니다.
이 기능은 대부분의 VM이 낮은 CPU 시간을 필요로 하지만 높은 CPU 시간을 보장해야 하는 하나(또는 일부)가 있는 가상화 호스트의 사용자/관리자(어떤 이유로든, 내 경우에는 다른 운영 체제를 사용하기 때문에)에게 유용할 수 있습니다.
답변1
proxmox에는 이미 비슷한 옵션이 있는 것 같습니다.
https://forum.proxmox.com/threads/numa-config-option.21313/
예, CPU 고정(친화성)을 활용합니다. NUMA를 활성화하면 기본 물리적 CPU의 NUMA 노드를 인식하도록 스케줄링 알고리즘이 변경된다는 것이 제가 이해한 바입니다. 따라서 가능할 때마다 동일한 NUMA 노드 내에서 vCPU 스케줄링을 유지하려고 시도합니다.