CoS 출력 큐 스케줄러 이해
출력 큐 스케줄링은 출력 큐의 CoS(Class-of-Service) 속성을 정의합니다. 출력 큐는 포워딩 클래스에 매핑되고 분류자는 수신 트래픽을 IEEE 802.1p 또는 DSCP 코드 포인트를 기반으로 포워딩 클래스로 매핑합니다. 출력 큐 속성에는 큐에 할당된 인터페이스 대역폭의 양, 패킷 저장에 할당된 메모리 버퍼 크기, 큐의 우선 순위 및 큐와 연관된 WRED(Weighted Random Early Detection) 드롭 프로파일이 포함됩니다. 큐 스케줄링은 우선 순위 그룹 스케줄링과 연동하여 2계층 계층적 스케줄러를 만듭니다.
계층적 스케줄러는 우선 순위 그룹(포워딩 클래스 집합)이라는 큐 그룹(포워딩 클래스)에 포트 대역폭을 할당하고 큐 스케줄링은 특정 큐에서 사용할 수 있는 우선 순위 그룹의 대역폭 부분을 결정합니다. 따라서 첫 번째 스케줄링 티어는 포트 대역폭을 포워딩 클래스 집합에 할당하고 두 번째 스케줄링 티어는 포워딩 클래스(큐)에 포워딩 클래스 세트 대역폭을 할당합니다.
스케줄러는 큐 스케줄러와 포워딩 클래스를 매핑합니다. 포워딩 클래스에 매핑된 큐는 해당 포워딩 클래스에 할당된 스케줄링 리소스를 수신합니다. 스케줄러 맵을 트래픽 제어 프로파일과 연결한 다음 트래픽 제어 프로파일을 포워딩 클래스 집합(우선 순위 그룹) 및 포트 인터페이스와 연결하여 포트에 스케줄링을 적용합니다. 트래픽 제어 프로파일에 구성된 우선 순위 그룹 스케줄링과 함께 큐 스케줄링은 패킷 스케줄러와 큐에 대한 WRED(Weighted Random Early Detection) 패킷 드롭 프로세스를 구성합니다.
큐 또는 우선 순위 그룹에 대역폭을 구성할 때 스위치는 데이터만 구성된 대역폭으로 간주합니다. 이 스위치는 서문과 IFG(Interframe Gap)에서 소비하는 대역폭을 고려하지 않습니다. 따라서 큐 또는 우선 순위 그룹에 대한 대역폭 요구 사항을 계산하고 구성할 때는 계산의 데이터뿐만 아니라 서문과 IFG를 고려합니다.
출력 대기열 스케줄링 구성 요소
표 1 은 출력 대기열(포워딩 클래스)의 대역폭 속성을 결정하기 위해 구성할 수 있는 스케줄러 구성 요소에 대한 빠른 참조를 제공하며 , 표 2 는 일부 관련 스케줄링 구성 컴포넌트를 빠르게 참조합니다.
출력 대기열 스케줄러 구성 요소 |
설명 |
---|---|
버퍼 크기 |
큐 버퍼 크기를 설정합니다. CoS 버퍼 구성 이해하기를 참조하십시오. |
드롭 프로파일 맵 |
드롭 프로필을 손실 우선 순위에 매핑합니다. 드롭 프로파일 맵 구성 요소는 다음과 같습니다.
CoS 드롭 프로파일 맵 구성을 참조하십시오. |
명시적 혼잡 알림 |
대기열에서 명시적 혼잡 알림(ECN)을 활성화합니다. CoS 명시적 혼잡 알림 이해하기를 참조하십시오. |
우선 순위 |
큐에 적용된 스케줄링 우선 순위를 설정합니다. CoS 큐 스케줄링 우선 순위 정의를 참조하십시오. |
셰이핑 속도 |
큐에서 사용할 수 있는 최대 대역폭을 설정합니다.
팁:
QFX5200 시리즈 스위치에서는 셰이핑 속도에 대해 세분화된 64kbps가 지원됩니다. CoS 우선 순위 그룹 셰이핑 및 큐 셰이핑 이해(최대 대역폭)를 참조하십시오. |
전송 속도 |
큐에 대한 최소 보장 대역폭을 설정합니다. 각 큐의 최소 보장 대역폭에 비례하여 추가 대역폭이 큐 간에 공유됩니다. CoS 우선 순위 그룹 및 큐 보장 최소 대역폭에 대한 이해를 참조하십시오. |
기타 스케줄링 컴포넌트 |
설명 |
---|---|
포워딩 클래스 |
트래픽을 출력 큐에 매핑합니다. 분류자는 포워딩 클래스를 IEEE 802.1p, DSCP 또는 EXP 코드 포인트에 매핑합니다. 포워딩 클래스, 출력 큐 및 코드 포인트 비트가 서로 매핑되어 동일한 트래픽을 식별합니다. (코드 포인트 비트는 수신 트래픽을 식별합니다. 분류자에서 코드 포인트 비트를 기반으로 포워딩 클래스에 트래픽을 할당합니다. 포워딩 클래스는 출력 큐에 매핑됩니다. 이 매핑은 스위치 송신 인터페이스에서 사용하는 각 트래픽 클래스의 출력 큐를 결정합니다.) |
출력 큐 |
스위치가 송신 인터페이스에서 트래픽을 전달하기 전에 트래픽을 버퍼링합니다. 출력 큐는 포워딩 클래스에 매핑됩니다. 스위치는 스케줄러 맵의 스케줄러에 포워딩 클래스를 스케줄러에 매핑하여 스케줄러에서 정의된 CoS 속성을 출력 큐에 적용합니다. 포워딩 클래스에 매핑된 큐에는 스케줄러에 정의된 CoS 속성이 해당 포워딩 클래스에 매핑됩니다. |
스케줄러 맵 |
스케줄러를 포워딩 클래스에 매핑(포워딩 클래스는 큐에 매핑되므로 포워딩 클래스가 큐를 나타내고 포워딩 클래스에 매핑된 스케줄러가 포워딩 클래스에 매핑된 출력 큐의 CoS 속성을 결정합니다). |
트래픽 제어 프로파일 |
포워딩 클래스 집합(우선 순위 그룹)에 대한 스케줄링을 구성하고 스케줄러 맵을 포워딩 클래스 집합의 포워딩 클래스에 큐 스케줄링을 적용하도록 설정된 포워딩 클래스와 연결합니다. 각 포워딩 클래스 집합의 최소 보장 대역폭에 비례하여 포워딩 클래스 집합 간에 추가 포트 대역폭이 공유됩니다. |
포워딩 클래스 세트 |
우선 순위 그룹의 이름입니다. 포워딩 클래스를 포워딩 클래스 세트에 매핑합니다. 포워딩 클래스 세트는 하나 이상의 포워딩 클래스로 구성됩니다. |
기본 스케줄러
각 포워딩 클래스에는 포워딩 클래스와 출력 큐의 CoS 속성을 설정하는 스케줄러가 필요합니다. 기본 스케줄러를 사용하거나 관련 포워딩 클래스에 대한 새로운 스케줄러를 정의할 수 있습니다. 다른 포워딩 클래스의 경우 스케줄러를 명시적으로 구성해야 합니다. 자세한 내용은 기본 스케줄링을 참조하십시오.
전송 속도(최소 보장 대역폭)
전송 속도는 각 포워딩 클래스에 대해 보장되는 최소 대역폭을 결정합니다. 스위치는 포워딩 클래스에 매핑된 출력 큐에 최소 대역폭 보장을 적용합니다. 또한 전송 속도는 각 낮은 우선 순위 큐가 공유할 수 있는 초과(추가) 대역폭 양을 결정합니다. 각 큐는 전송 속도에 비례하여 추가 대역폭을 공유합니다. 초당 비트의 속도를 1Mbps와 같은 고정 값으로 지정하거나 총 포워딩 클래스 집합의 비율로 최소 보장 대역폭(트래픽 제어 프로파일에 설정된 보장 속도)을 지정합니다. 기본 스케줄러 또는 구성 스케줄러는 전송 속도에 비례하여 각 포워딩 클래스에 송신 인터페이스 대역폭의 일부를 할당합니다.
1Gbps 미만의 전송 속도의 경우, 고정 속도가 아닌 비율로 전송 속도를 구성하는 것이 좋습니다. 이는 시스템이 고정 금리를 비율로 변환하고 소형 고정 금리를 더 낮은 비율로 둥글게 할 수 있기 때문입니다. 예를 들어, 350Mbps의 고정 속도는 3%로 내려갔습니다.
엄격한 우선 순위 큐에 대한 전송 속도를 구성할 수 없습니다. 구성된 전송 속도를 가진 큐는 엄격한 우선 순위 큐가 있는 포워딩 클래스 세트에 포함될 수 없습니다(동일한 포워딩 클래스 집합에서 엄격한 우선 순위 큐와 엄격한 우선 순위가 없는 큐를 혼합할 수 없음).
할당된 대역폭을 모두 사용하지 않는 포워딩 클래스 세트의 다른 큐에서 추가 대역폭을 사용할 수 있는 경우 할당된 대역폭이 구성된 최소 속도를 초과할 수 있습니다. 혼잡 기간 동안 구성된 전송 속도는 큐에 대한 보장된 대역폭 최소값입니다. 이러한 동작을 통해 각 큐가 서비스 수준에 적합한 대역폭 양을 수신하고 사용되지 않는 대역폭을 공유할 수 있도록 보장합니다.
트래픽 제어 프로파일에 설정된 포워딩 클래스에 대해 최소 보장 대역폭(보장된 속도)을 구성하지 않는 한 포워딩 클래스에 대한 최소 보장 대역폭(전송 속도)을 구성하지 않습니다.
또한 포워딩 클래스 집합에 있는 큐의 전송 속도를 합하면 포워딩 클래스 집합에 대해 보장된 속도를 초과해서는 안 됩니다. (전체 큐 세트에 대해 보장된 최소 대역폭보다 큰 큐의 최소 대역폭을 합한 대역폭을 보장할 수 없습니다.)
자세한 내용은 CoS 우선 순위 그룹 및 큐 보장 최소 대역폭의 이해(Understanding CoS Priority Group)를 참조하십시오.
추가 대역폭 공유
포워딩 클래스 집합에서 보장된 최소 대역폭(보장 속도)을 모두 사용하지 않는 경우, 우선 순위가 낮은 대기열에 추가 대역폭이 제공됩니다. 각 큐의 최소 보장 대역폭(전송 속도)에 비례하여 설정된 포워딩 클래스의 포워딩 클래스 간에 추가 대역폭이 공유됩니다.
예를 들어 포워딩 클래스 세트에서 큐 A는 1Gbps의 전송 속도를, 큐 B는 1Gbps의 전송 속도를, 큐 C는 2Gbps의 전송 속도를 가합니다. 이러한 큐의 최소 보장 대역폭을 지원한 후에도 포워딩 클래스 세트는 2Gbps의 추가 대역폭을 사용할 수 있으며, 세 큐 모두 포워딩할 패킷이 있습니다. 큐는 전송 속도에 비례하여 추가 대역폭을 수신하므로 큐 A는 500Mbps를 추가로 수신하고, 큐 B는 추가 500Mbps를, 큐 C는 추가 1Gbps를 받습니다.
셰이핑 속도(최대 대역폭)
셰이핑 속도는 포워딩 클래스에서 사용할 수 있는 최대 대역폭을 설정합니다. 초당 비트 속도를 3Mbps와 같은 고정 값으로 지정하거나 총 포워딩 클래스 집합 최대 대역폭의 비율로 지정합니다(트래픽 제어 프로파일에 설정된 셰이핑 속도).
큐의 최대 대역폭은 큐에 속하는 포워딩 클래스에 사용할 수 있는 총 대역폭과 포워딩 클래스 집합의 다른 큐에서 소비하는 대역폭의 양에 따라 달라집니다.
QFabric 시스템에서 송신 패킷이 포함된 큐가 12초 연속으로 패킷을 전송하지 않으면 포트가 자동으로 재설정됩니다. 엄격한 우선 순위 큐(또는 굶주린 대기열보다 높은 우선 순위가 있는 여러 큐)는 모든 포트 대역폭을 사용하고 다른 큐가 패킷을 전송하지 못하도록 방지할 수 있습니다. 대기열이 대역폭에 굶주린 것을 방지하기 위해 큐 또는 큐에서 셰이핑 속도를 구성하여 모든 포트 대역폭을 소모하지 않도록 할 수 있습니다.
엄격한 우선 순위 큐에 대해 스케줄러에서 셰이핑 속도를 항상 구성하여 다른 대기열이 굶주리지 않도록 하는 것이 좋습니다.
자세한 내용은 CoS 우선 순위 그룹 셰이핑 및 큐 셰이핑 이해(최대 대역폭)를 참조하십시오.
스케줄링 우선 순위
스케줄링 우선 순위는 인터페이스가 출력 큐에서 트래픽을 전송하는 순서를 결정합니다. 이를 통해 중요한 트래픽을 포함하는 큐에 우선 순위가 있는 인터페이스 대역폭에 액세스할 수 있습니다. 스케줄러의 우선 순위 설정이 큐의 우선 순위를 결정합니다.
자세한 내용은 CoS 큐 스케줄링 우선 순위 정의를 참조하십시오.
스케줄러 드롭 프로파일 맵
드롭 프로파일 맵은 드롭 프로파일과 큐 스케줄러 및 패킷 손실 우선 순위(PLP)를 연결합니다. 드롭 프로파일은 대기열 채우기 수준과 지정된 큐 채우기 수준에서 패킷 드롭의 비율 가능성에 따라 혼잡 기간 동안 패킷 드롭에 대한 임계값을 설정합니다. 서로 다른 채우기 수준에서 드롭 프로파일은 혼잡 기간 동안 패킷 드롭의 다른 가능성을 설정합니다.
분류자는 포워딩 클래스(출력 큐에 매핑된)에 수신 트래픽을 할당하고 수신 트래픽에 PLP를 할당합니다. PLP는 낮거나, 중간 높이 또는 높을 수 있습니다. 서로 다른 PLP를 통해 트래픽을 동일한 포워딩 클래스로 분류하여 포워딩 클래스 내에서 트래픽 처리를 차별화할 수 있습니다.
드롭 프로파일 맵에서 각 PLP에 대해 다른 드롭 프로파일을 구성하고 드롭 프로파일을 큐 스케줄러에 연결할 수 있습니다. 스케줄러 맵은 큐 스케줄러를 포워딩 클래스(출력 큐)에 매핑합니다. 포워딩 클래스로 분류되는 트래픽은 드롭 프로파일 맵이 큐 스케줄러와 연결하는 드롭 프로파일에 정의된 드롭 특성을 사용합니다. 트래픽이 사용하는 드롭 프로파일은 분류기가 트래픽에 할당하는 PLP에 따라 달라집니다. (각기 다른 PLP에 대해 서로 다른 드롭 프로파일을 포워딩 클래스에 매핑할 수 있습니다.)
요약:
분류자에서 포워딩 클래스에 트래픽을 할당할 때 분류자에서 수신 트래픽에 3개 PLP(낮음, 중대형, 높음) 중 하나를 할당합니다.
드롭 프로파일은 서로 다른 큐 채우기 수준에서 패킷 드롭에 대한 임계값을 설정합니다.
드롭 프로파일 맵은 드롭 프로파일을 각 PLP와 연결하고 드롭 프로파일을 스케줄러에 매핑합니다.
스케줄러는 맵 스케줄러를 포워딩 클래스에 매핑하고 포워딩 클래스는 출력 대기열에 매핑됩니다. 포워딩 클래스에 매핑된 스케줄러는 드롭 프로파일 매핑을 포함하여 포워딩 클래스에 매핑된 출력 큐의 CoS 특성을 결정합니다.
버퍼 크기
전체 시스템 버퍼 공간의 대부분은 2개의 버퍼 풀, 공유 버퍼 및 전용 버퍼로 나뉩니다. 공유 버퍼는 필요에 따라 포트가 동적으로 공유하는 글로벌 풀입니다. 전용 버퍼는 모든 포트에 고르게 분산되는 버퍼 풀의 예약된 부분입니다. 각 포트는 전용 버퍼 공간과 동일한 할당을 받습니다. 포트에 대한 전용 버퍼 할당은 포트에 대해 예약되어 있기 때문에 구성이 불가능합니다.
큐 버퍼는 포트에 할당된 전용 버퍼 풀에서 할당됩니다. 기본적으로 포트는 트래픽에 대한 최소 보장 전송 속도(transmit-rate
)를 설정하는 기본 스케줄러와 동일한 비율로 송신 대기열 간에 전용 버퍼 할당을 분할합니다. 기본 스케줄러에 포함된 큐만 전용 버퍼를 받습니다.
기본 구성을 사용하지 않는 경우 다음 두 가지 방법으로 큐 버퍼 크기를 명시적으로 구성할 수 있습니다.
일정 비율—큐가 스케줄러에 매핑되고 스케줄러가 포트에 매핑될 때 큐는 전용 포트 버퍼의 지정된 비율을 수신합니다.
남은 기간—포트가 명시적 비율의 버퍼 크기 구성을 가진 큐를 서비스한 후 나머지 포트 전용 버퍼 공간은 스케줄러가 연결된 다른 대기열과 동일하게 분할됩니다. (기본값 또는 명시적 스케줄러는 큐에 대한 전용 버퍼 할당을 의미하지 않습니다.) 스케줄러를 구성하고 버퍼 크기를 백분율로 지정하지 않는 경우 , 나머지는 기본 설정입니다.
포트의 모든 큐에 대해 명시적으로 구성된 모든 버퍼 크기 비율의 합계는 100%를 초과할 수 없습니다.
ingress 및 egress 포트 버퍼 구성의 맥락에서 큐 버퍼 구성에 대한 완벽한 논의는 CoS 버퍼 구성 이해(Understanding CoS Buffer Configuration)를 참조하십시오.
명시적 혼잡 알림
ECN(Explicit Congestion Notification)은 전송 장비가 패킷 드롭(dropping) 없이 혼잡이 지워질 때까지 전송 속도를 줄임으로써 패킷 손실 및 지연을 줄이겠다는 목표를 가지고 혼잡에 대해 네트워크에 통보합니다. ECN은 TCP/IP 기반 네트워크에서 두 단말 장치 간의 엔드 투 엔드 혼잡 알림을 지원합니다. ECN은 기본적으로 비활성화됩니다.
자세한 내용은 CoS 명시적 혼잡 알림 이해(Understanding)를 참조하십시오.
스케줄러 맵
스케줄러 맵은 스케줄러 구성과 포워딩 클래스를 연결합니다. 스케줄러를 구성한 후에는 스케줄러 맵에 포함시키고 스케줄러 맵을 트래픽 제어 프로파일과 연결한 다음 트래픽 제어 프로파일을 구성된 큐 스케줄링을 구현하도록 설정된 인터페이스 및 포워딩 클래스에 연결해야 합니다.
최대 4개의 사용자 정의 스케줄러 맵을 트래픽 제어 프로파일과 연결할 수 있습니다. 자세한 내용은 Default Schedulers 개요를 참조하십시오.