Share via


소프트웨어 정의 네트워크에서 HNV 게이트웨이 성능 튜닝

이 항목에서는 Windows Server 게이트웨이 VM(가상 머신)에 대한 구성 매개 변수 외에도 Hyper-V를 실행하고 Windows Server 게이트웨이 가상 머신을 호스팅하는 서버에 대한 하드웨어 사양 및 구성 권장 사항을 제공합니다. Windows Server 게이트웨이 VM에서 최상의 성능을 추출하기 위해 이러한 지침이 준수될 것으로 예상됩니다. 다음 섹션에서는 Windows Server 게이트웨이를 배포할 때의 하드웨어 및 구성 요구 사항을 설명합니다.

  1. Hyper-V 하드웨어 권장 사항
  2. Hyper-V 호스트 구성
  3. Windows Server 게이트웨이 VM 구성

Hyper-V 하드웨어 권장 사항

다음은 Windows Server 2016 및 Hyper-V를 실행하는 각 서버에 권장되는 최소 하드웨어 구성입니다.

서버 구성 요소 규격
CPU(중앙 처리 장치) NUMA(비균일 메모리 아키텍처) 노드: 2
호스트에 여러 Windows Server 게이트웨이 VM이 있는 경우 최상의 성능을 위해 각 게이트웨이 VM은 하나의 NUMA 노드에 대한 모든 권한을 가져야 합니다. 또한 호스트 물리적 어댑터에서 사용하는 NUMA 노드와 달라야 합니다.
NUMA 노드당 코어 수 2
하이퍼 스레딩 Disabled. 하이퍼 스레딩은 Windows Server 게이트웨이의 성능을 향상시키지 않습니다.
RAM(Random Access Memory) 48GB
NIC(네트워크 인터페이스 카드) 10GB NIC 2개, 게이트웨이 성능은 선 속도에 따라 달라집니다. 선 속도가 10Gbps 미만이면 게이트웨이 터널 처리량 번호도 동일한 요소로 다운됩니다.

Windows Server 게이트웨이 VM에 할당된 가상 프로세서 수가 NUMA 노드의 프로세서 수를 초과하지 않는지 확인하십시오. 예를 들어 NUMA 노드에 8개의 코어가 있는 경우 가상 프로세서 수는 8개보다 적거나 같아야 합니다. 최상의 성능을 위해서는 8이어야 합니다. NUMA 노드 수와 NUMA 노드당 코어 수를 확인하려면 각 Hyper-V 호스트에서 다음 Windows PowerShell 스크립트를 실행하십시오.

$nodes = [object[]] $(gwmi –Namespace root\virtualization\v2 -Class MSVM_NumaNode)
$cores = ($nodes | Measure-Object NumberOfProcessorCores -sum).Sum
$lps = ($nodes | Measure-Object NumberOfLogicalProcessors -sum).Sum


Write-Host "Number of NUMA Nodes: ", $nodes.count
Write-Host ("Total Number of Cores: ", $cores)
Write-Host ("Total Number of Logical Processors: ", $lps)

Important

NUMA 노드에서 가상 프로세서를 할당하면 Windows Server 게이트웨이의 성능에 부정적인 영향을 줄 수 있습니다. 각각 하나의 NUMA 노드에서 가상 프로세서가 할당된 여러 VM을 실행하면 모든 가상 프로세서가 단일 VM에 할당된 경우보다 집계 성능이 향상됩니다.

각 NUMA 노드에 8개의 코어가 있는 경우 각 Hyper-V 호스트에 설치할 게이트웨이 VM 수를 선택할 때 8개 이상의 가상 프로세서와 8GB RAM이 있는 하나의 게이트웨이 VM을 사용하는 것이 좋습니다. 이 경우 하나의 NUMA 노드가 호스트 머신 전용입니다.

Hyper-V 호스트 구성

다음은 Windows Server 2016 및 Hyper-V를 실행하고 Windows Server 게이트웨이 VM을 실행하는 워크로드인 각 서버에 권장되는 구성입니다. 이러한 구성 지침에는 Windows PowerShell 명령의 사용 예가 포함되어 있습니다. 이러한 예에 포함된 자리 표시자는 사용자 환경에서 명령을 실행할 때 실제 값으로 바꿔야 합니다. 예를 들어 네트워크 어댑터 이름 자리 표시자는 "NIC1" 및 "NIC2"입니다. 이러한 자리 표시자를 사용하는 명령을 실행하는 경우 자리 표시자를 사용하는 대신 서버에서 네트워크 어댑터의 실제 이름을 활용하거나 명령이 실패합니다.

참고 항목

다음 Windows PowerShell 명령을 실행하려면 Administrators 그룹의 구성원이어야 합니다.

구성 항목 Windows Powershell 구성
스위치 포함 팀 여러 네트워크 어댑터를 사용하여 vswitch를 만들 때 해당 어댑터에 대한 스위치 포함 팀을 자동으로 사용하도록 설정했습니다.
New-VMSwitch -Name TeamedvSwitch -NetAdapterName "NIC 1","NIC 2"
LBFO를 통한 기존 팀은 Windows Server 2016의 SDN에서 지원되지 않습니다. Switch Embedded Teaming을 사용하면 가상 트래픽 및 RDMA 트래픽에 동일한 NIC 집합을 사용할 수 있습니다. LBFO를 기반으로 하는 NIC 팀에서는 지원되지 않습니다.
실제 NIC의 인터럽트 조절 기본 설정을 사용합니다. 구성을 검사 위해 다음 Windows PowerShell 명령을 사용할 수 있습니다.Get-NetAdapterAdvancedProperty
실제 NIC의 수신 버퍼 크기 명령을 Get-NetAdapterAdvancedProperty실행하여 물리적 NIC가 이 매개 변수의 구성을 지원하는지 확인할 수 있습니다. 이 매개 변수를 지원하지 않는 경우 명령의 출력에는 "수신 버퍼" 속성이 포함되지 않습니다. NIC가 이 매개 변수를 지원하는 경우 다음 Windows PowerShell 명령을 사용하여 수신 버퍼 크기를 설정할 수 있습니다.
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Receive Buffers" –DisplayValue 3000
실제 NIC의 전송 버퍼 크기 명령을 Get-NetAdapterAdvancedProperty실행하여 물리적 NIC가 이 매개 변수의 구성을 지원하는지 확인할 수 있습니다. NIC가 이 매개 변수를 지원하지 않는 경우 명령의 출력에는 "버퍼 보내기" 속성이 포함되지 않습니다. NIC가 이 매개 변수를 지원하는 경우 다음 Windows PowerShell 명령을 사용하여 버퍼 보내기 크기를 설정할 수 있습니다.
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Transmit Buffers" –DisplayValue 3000
실제 NIC의 RSS(수신측 배율) Windows PowerShell 명령 Get-NetAdapterRss를 실행하여 물리적 NIC에 RSS가 활성화되어 있는지 확인할 수 있습니다. 다음 Windows PowerShell 명령을 사용하여 네트워크 어댑터에서 RSS를 사용하도록 설정하고 구성할 수 있습니다.
Enable-NetAdapterRss "NIC1","NIC2"
Set-NetAdapterRss "NIC1","NIC2" –NumberOfReceiveQueues 16 -MaxProcessors
참고: VMMQ 또는 VMQ를 사용하는 경우 물리적 네트워크 어댑터에서 RSS를 사용하도록 설정할 필요가 없습니다. 호스트 가상 네트워크 어댑터에서 사용하도록 설정할 수 있습니다.
VMMQ VM에 대해 VMMQ를 사용하도록 설정하려면 다음 명령을 실행합니다.
Set-VmNetworkAdapter -VMName <gateway vm name>,-VrssEnabled $true -VmmqEnabled $true
참고: 모든 네트워크 어댑터가 VMMQ를 지원하지는 않습니다. 현재 Chelsio T5 및 T6, Mellanox CX-3 및 CX-4 및 QLogic 45xxx 시리즈에서 지원됩니다.
NIC 팀의 VMQ(가상 컴퓨터 큐) 다음 Windows PowerShell 명령을 사용하여 SET 팀에서 VMQ를 사용하도록 설정할 수 있습니다.
Enable-NetAdapterVmq
참고: HW가 VMMQ를 지원하지 않는 경우에만 사용하도록 설정해야 합니다. 지원되는 경우 더 나은 성능을 위해 VMMQ를 사용하도록 설정해야 합니다.

참고 항목

VMQ 및 vRSS는 VM의 부하가 높고 CPU가 최대값으로 활용되는 경우에만 그림으로 표시됩니다. 그런 다음 하나 이상의 프로세서 코어가 최대 출력됩니다. 그러면 VMQ 및 vRSS가 여러 코어에 걸쳐 처리 부하를 분산하는 데 도움이 됩니다. IPsec 트래픽은 단일 코어로 제한되므로 IPsec 트래픽에는 적용되지 않습니다.

Windows Server 게이트웨이 VM 구성

두 Hyper-V 호스트에서 Windows Server 게이트웨이를 사용하여 게이트웨이로 구성된 여러 VM을 구성할 수 있습니다. 가상 스위치 관리자를 사용하여 Hyper-V 호스트의 NIC 팀에 바인딩된 Hyper-V 가상 스위치를 만들 수 있습니다. 최상의 성능을 위해 Hyper-V 호스트에 단일 게이트웨이 VM을 배포해야 합니다. 다음은 각 Windows Server 게이트웨이 VM에 대한 권장 구성입니다.

구성 항목 Windows Powershell 구성
메모리 8GB
가상 네트워크 어댑터 수 3개의 특정 용도가 있는 NIC: 관리 운영 체제에서 사용하는 관리용 1개, 외부 네트워크에 대한 액세스를 제공하는 외부 1개, 내부 네트워크에만 액세스를 제공하는 내부 1개.
RSS(수신측 배율) 관리 NIC에 대한 기본 RSS 설정을 유지할 수 있습니다. 다음 구성 예는 가상 프로세서가 8개인 VM에 대한 구성입니다. 외부 및 내부 NIC의 경우 다음 Windows PowerShell 명령을 사용하여 BaseProcNumber가 0으로 설정되고 MaxRssProcessors가 8로 설정된 RSS를 사용하도록 설정할 수 있습니다.
Set-NetAdapterRss "Internal","External" –BaseProcNumber 0 –MaxProcessorNumber 8
쪽 버퍼 보내기 관리 NIC에 대한 기본 송신 쪽 버퍼 설정을 유지할 수 있습니다. 내부 및 외부 NIC의 경우 다음 Windows PowerShell 명령을 사용하여 32MB RAM으로 사이드 버퍼 보내기를 구성할 수 있습니다.
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Send Buffer Size" –DisplayValue "32MB"
수신 쪽 버퍼 관리 NIC에 대한 기본 수신 쪽 버퍼 설정을 유지할 수 있습니다. 내부 및 외부 NIC의 경우 다음 Windows PowerShell 명령을 사용하여 16MB RAM으로 수신 쪽 버퍼를 구성할 수 있습니다.
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Receive Buffer Size" –DisplayValue "16MB"
전달 최적화 관리 NIC에 대한 기본 전달 최적화 설정을 유지할 수 있습니다. 내부 및 외부 NIC 모두에 대해 다음 Windows PowerShell 명령을 사용하여 앞으로 최적화를 사용하도록 설정할 수 있습니다.
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Forward Optimization" –DisplayValue "1"