EC2 Windows 인스턴스에서 네트워크 성능 최적화
향상된 네트워킹을 지원하는 Windows 인스턴스에서 네트워크 성능을 최대화하려는 경우 기본 운영 체제 구성을 수정해야 할 수도 있습니다. 높은 네트워크 성능이 필요한 애플리케이션의 경우 다음과 같이 구성을 변경하는 것이 좋습니다. 다른 최적화(예: 체크섬 오프로드 켜기 및 RSS 활성화)는 공식 Windows AMI에 이미 구성되어 있습니다.
참고
대부분 용도에서는 TCP Chimney 오프로드를 비활성화해야 하며, Windows Server 2016부터는 더 이상 사용되지 않았습니다.
이러한 운영 체제 최적화 외에도, 네트워크 트래픽의 최대 전송 단위(MTU)를 고려하여 워크로드 및 네트워크 아키텍처에 맞게 조정해야 합니다. 자세한 내용은 EC2 인스턴스에 대한 네트워크 MTU(최대 전송 단위) 섹션을 참조하세요.
AWS은(는) 클러스터 배치 그룹에서 시작된 인스턴스 간의 평균 왕복 지연 시간(50us)과 99.9 백분위 테일 지연 시간(200us)을 정기적으로 측정합니다. 애플리케이션에서 일관되게 낮은 지연 시간을 요구하는 경우 고정 성능 Nitro System 기반 인스턴스에 최신 버전의 ENA 드라이버를 사용하는 것이 좋습니다.
수신 측 조정 CPU 선호도 구성
네트워크 트래픽 CPU 로드를 여러 프로세서로 분산하는 데 수신 측 조정(RSS)이 사용됩니다. 기본적으로 공식 Amazon Windows AMI는 RSS가 활성화된 상태로 구성됩니다. ENA 탄력적 네트워크 인터페이스는 최대 8개의 RSS 대기열을 제공합니다. RSS 대기열 및 다른 시스템 프로세스에 대한 CPU 선호도를 정의하면, 다중 코어 시스템으로 CPU 로드를 분산해 더 많은 네트워크 트래픽을 처리할 수 있습니다. vCPU를 16개 이상 사용하는 인스턴스 유형의 경우 Set-NetAdapterRSS
PowerShell cmdlet 사용을 권장합니다. 다양한 시스템 구성 요소의 경합을 방지하기 위해 모든 탄력적 네트워크 인터페이스의 RSS 구성에서 부트 프로세서(하이퍼 스레딩 사용 시 논리 프로세서 0 및 1)를 수동으로 제외합니다.
Windows는 하이퍼 스레드를 인식하며, 단일 NIC(네트워크 인터페이스 카드)의 RSS 대기열이 언제나 다른 물리적 코어에 위치하게 합니다. 따라서 다른 NIC와의 경합 방지를 위해 하이퍼 스레딩을 사용 중지하지 않는다면, 각 NIC의 RSS 구성을 16개의 논리적 프로세서에 분산합니다. Set-NetAdapterRss
cmdlet을 사용하면 BaseProcessorGroup, BaseProcessorNumber, MaxProcessingGroup, MaxProcessorNumber 및 NumaNode(선택 사항) 값을 정의하여 유효한 논리적 프로세서의 NIC당 범위를 정의할 수 있습니다. 물리적 코어가 부족해 NIC간 경합을 완전히 제거할 수 없다면, 중첩되는 범위를 최소화하거나 탄력적 네트워크 인터페이스의 예상 워크로드에 따라 인터페이스 범위에 있는 논리적 프로세서의 수를 줄여보세요(적은 볼륨의 관리자 네트워크 인터페이스는 할당된 RSS 대기열보다 적은 대기열이 필요할 수 있습니다). 또한 위에서 언급했듯이 다양한 구성 요소를 CPU 0에서 실행해야 하므로 충분한 vCPU를 사용할 수 있다면 모든 RSS 구성에서 이를 제외하는 것이 좋습니다.
예를 들어 하이퍼 스레딩이 활성화된 NUMA 노드 2개가 있는 72 vCPU 인스턴스에 탄력적 네트워크 인터페이스 3개가 있다면, 다음 명령은 중첩되거나 코어 0 사용을 완전히 방지하지 않고도 네트워크 로드를 두 CPU에 분산합니다.
Set-NetAdapterRss -Name NIC1 -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessorNumber 16 Set-NetAdapterRss -Name NIC2 -BaseProcessorGroup 1 -BaseProcessorNumber 0 -MaxProcessorNumber 14 Set-NetAdapterRss -Name NIC3 -BaseProcessorGroup 1 -BaseProcessorNumber 16 -MaxProcessorNumber 30
이러한 설정은 각 네트워크 어댑터에 영구적으로 적용됩니다. 인스턴스가 vCPU 숫자가 다른 인스턴스로 크기 조정된다면, 활성화된 각 탄력적 네트워크 인터페이스에 대해 RSS 구성을 재평가해야 합니다. cmdlet에 대한 전체 Microsoft 설명서는 Set-NetAdapterRss
SQL 워크로드 전용 참고 사항: 같은 CPU에 대한 I/O와 네트워크 경합을 최소화할 수 있도록, I/O 스레드 선호도 설정과 탄력적 네트워크 인터페이스 RSS 구성을 검토해 보세요. 선호도 마스크 서버 구성 옵션