
Proxmox에서 PCIe 패스스루로 GPU 사용 시 오버헤드 최소화 방법
PCIe 패스스루를 사용하면 VM에서 물리적인 GPU를 직접 사용할 수 있지만, 잘못 설정하면 성능 저하나 추가적인 오버헤드가 발생할 수 있어. 최소한의 성능 손실로 GPU 패스스루를 최적화하는 방법을 정리해볼게.
🔹 1. CPU 설정 최적화
✅ (1) CPU 모델을 "Host"로 설정
- 기본적으로 KVM은 가상 CPU 모델을 제공하는데, **"host"**로 설정하면 실제 CPU의 모든 기능을 활용할 수 있어.
- VM 설정 → Hardware → Processor → Type에서 **"host"**로 변경
qm set <VMID> -cpu host
이렇게 하면 VM이 물리 CPU의 명령어 세트를 최대한 활용할 수 있어 오버헤드를 줄일 수 있어.
🔹 2. IOMMU(입출력 메모리 관리) 설정
IOMMU는 PCIe 패스스루의 핵심이야. 올바르게 설정하지 않으면 성능 저하가 발생할 수 있어.
✅ (1) IOMMU 활성화
BIOS에서 VT-d(Intel) / AMD-Vi(AMD) 활성화
이후, Proxmox에서 IOMMU를 활성화하려면 /etc/default/grub을 수정해야 해.
nano /etc/default/grub
다음 줄을 찾고 수정:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
AMD의 경우:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
설정 적용 후:
update-grub
reboot
✅ (2) VFIO 드라이버 활성화
PCIe 패스스루를 사용하려면 VFIO 드라이버를 활성화해야 해.
아래 내용을 /etc/modules에 추가:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
그리고 적용:
update-initramfs -u
reboot
🔹 3. PCIe 패스스루 관련 설정
✅ (1) GPU를 "PCIe" 모드로 설정
- Proxmox에서 VM 설정 → Add Hardware → PCI Device
- "All Functions" 체크
- "PCI-Express" 체크 ✅
CLI로 설정할 경우:
qm set <VMID> -hostpci0 0000:03:00.0,pcie=1
이렇게 하면 GPU가 PCIe 모드로 동작하여 성능 저하가 최소화됨.
✅ (2) romfile을 사용하여 부팅 오류 방지
- NVIDIA GPU는 UEFI VM에서 패스스루할 때 문제가 생길 수 있어.
- 이를 해결하려면, GPU의 vBIOS ROM 파일을 제공해야 해.
qm set <VMID> -hostpci0 0000:03:00.0,pcie=1,romfile=/usr/share/kvm/vbios.rom
GPU의 vBIOS 덤프 방법:
echo 1 > /sys/bus/pci/devices/0000:03:00.0/rom
cat /sys/bus/pci/devices/0000:03:00.0/rom > /usr/share/kvm/vbios.rom
echo 0 > /sys/bus/pci/devices/0000:03:00.0/rom
🔹 4. NVIDIA/AMD 드라이버 최적화
✅ (1) NVIDIA 코드 43 오류 해결 (GeForce 사용자용)
NVIDIA는 가상 환경에서 GPU 사용을 막기 위해 "코드 43" 오류를 발생시키는데, 이를 우회하려면 다음 옵션을 추가해야 해.
qm set <VMID> -args "-cpu host,kvm=off"
이렇게 하면 KVM이 감지되지 않아 정상적으로 GPU를 사용할 수 있어.
✅ (2) AMD GPU 성능 최적화
AMD GPU는 NVIDIA보다 가상 환경에서 우호적이지만, 성능을 최적화하려면 메모리 Overcommit 방지가 필요해.
qm set <VMID> -balloon 0
이렇게 하면 VM의 메모리가 동적으로 조절되지 않으면서 안정적인 성능을 유지할 수 있어.
🔹 5. vGPU (가상 GPU) & ReBAR 활성화 (고급)
vGPU (Virtual GPU) 기술을 활용하면 GPU를 여러 VM에 나누어 사용할 수 있어.
- NVIDIA GRID, vGPU 라이센스가 필요하지만, RTX 카드에서도 우회해서 사용할 수 있는 방법이 있음.
- AMD의 경우 SR-IOV 지원 GPU(예: MI100, MI200 시리즈)를 사용하면 가능.
또한 **Resizable BAR(ReBAR)**를 활성화하면 성능이 더 좋아질 수 있음.
- BIOS에서 Resizable BAR 활성화
- NVIDIA의 경우 최신 드라이버 사용
🚀 최종 정리: 오버헤드 최소화 핵심 정리
✔ CPU를 host로 설정하여 가상화 오버헤드 제거
✔ IOMMU 활성화 (iommu=pt 사용)
✔ PCIe 패스스루 설정 (pcie=1, all functions on)
✔ NVIDIA "코드 43" 우회 (-cpu host,kvm=off)
✔ 메모리 Overcommit 방지 (-balloon 0)
✔ vGPU, SR-IOV, ReBAR 활용하면 성능 추가 향상 가능
➡️ 이 설정들을 적용하면 PCIe 패스스루 성능을 최대한 끌어올릴 수 있어!
'IT생활' 카테고리의 다른 글
FreeBSD, Linux, Unix, Windows 비교 (0) | 2025.03.16 |
---|---|
Debian, Fedora, Gentoo 차이점 비교 (0) | 2025.03.16 |
Proxmox VM 간 이더넷 구성 시 10Gbps 이상의 속도 가능 여부 (0) | 2025.03.16 |
성능 비교 (SATA, SCSI, VirtIO, NVMe) (0) | 2025.03.16 |
마인크래프트 작물 성장 속도(청크 틱 업데이트 속도)를 올리는 방법 (0) | 2025.03.16 |