무언가가 표시되고, 큐가 구성되고, 그러고 나서 누군가 설계가 실제로 어떤 품질을 보장하는지 묻는다. 정직한 답은 경계에서 만나는 계약의 두 절반을 설명했다는 것이다. 사업자가 받아들이는 클래스와 그것이 적용하는 처리를 이름 붙일 수 있을 때까지, 로컬 구성은 약속이 아니라 의도다. 두 절반 모두 중요하고 어느 하나도 다른 하나에서 추론할 수 없다.

local match → queue and marking → provider classifier
  → provider treatment → destination

올바른 표시가 조용히 죽는 곳

워크로드마다 로컬 일치 조건, 터널 안에서 일어나는 모든 표시, 사업자가 받아들이는 값, 그 값이 선택하는 서비스 클래스를 적는 것으로 시작하라. 네 개의 열이고, 실패는 대개 두 번째와 세 번째 사이에 산다.

내부에서 외부로의 표시 동작이 고전적인 문제다. 암호화되거나 터널링된 경로의 패킷은 당신의 분류기가 볼 수 있는 내부 헤더와 사업자 장비가 볼 수 있는 외부 헤더를 가지며, 하나를 다른 하나로 복사하는 것은 자동 속성이 아니라 구성 결정이다. 내부 헤더만 표시하면 사업자는 외부 헤더를, 보통 기본값으로 분류한다. 그래서 올바르게 표시된 흐름이 당신 쪽에 잘못 구성된 줄 하나 없이도 잘못된 클래스에 도착할 수 있다.

로컬에서 이름 붙인 클래스도 실제 패킷에서 일치 조건이 한 번도 발동하지 않아 비어 있을 수 있다. 포트는 옮겨지고, 애플리케이션은 여러 흐름을 쓰고, 공급업체가 두 릴리스 전에 쓰지 않게 된 잘 알려진 포트에 대한 일치는 카운터가 영인 큐와 실행 중인 구성에서 완벽해 보이는 정책을 만든다.

표시를 어디에서 신뢰할지 명시적으로 결정하라. 터널을 공유하는 모든 것을 승격하면 통화와 함께 대량 전송도 승격된다. 검증 없이 당신의 표시를 받아들이는 사업자는 스스로를 해칠 방법을 제안하는 것이다. 계약이 게이트웨이가 전달 시점에 다시 표시하는 것을 허용한다면 그것을 문서로 남겨라. 두 팀의 가정이 갈라지는 곳이 바로 그 지점이다.

스케줄러가 실제로 나누는 것

로컬 정책에는 고유한 의미론이 있고, 가장 많은 오해를 낳는 것은 “remaining”이라는 단어다. IOS XE 스케줄링 가이드가 설명하는 플랫폼에서 bandwidth remaining percent 은 초과 가중치를 설정하며, 각 클래스가 이전 클래스가 남긴 것에서 몫을 가져가는 순서의 한 단계가 아니다. 할당되지 않은 백분율은 파일의 마지막 클래스를 위해 예약되는 대신 적격한 미구성 큐에 분산된다.

이 구분이 중요한 것은 순차적 사고 모델이 카운터와 결코 일치하지 않는 예측을 내놓기 때문이다. 엔지니어는 결과를 바꾸려고 클래스를 재정렬하고, 차이를 보지 못하며, 플랫폼이 고장 났다고 결론짓는다. 그러나 구성은 그들이 가정한 의미를 가진 적이 없다.

상위 셰이퍼는 또 다른 흔한 놀라움이다. 제어된 큐를 사용 가능한 서비스 속도까지 셰이핑하는 것은 종종 의도적이다. 그것이 혼잡 지점을 당신이 관리하는 장비로 옮기기 때문이며, 관리하지 않는 상류 큐로 옮기는 것이 아니다. 셰이핑이 지연을 더한다고 셰이퍼를 제거하면 손실을 없애는 대신 옮길 수 있고, 오버헤드 회계나 사업자의 폴리서가 실효 속도를 인터페이스가 시사하는 것보다 낮출 수 있다.

카운터가 어느 절반이 실패했는지 말해 준다

영향을 받은 방향에서 네 개의 숫자를 비교하라. 제공된 양, 클래스가 일치시킨 양, 큐에 들어갔거나 버려진 양, 서비스가 실제로 전달한 양이다. 워크로드 설명과 정책 버전을 관측 옆에 두어라. 그것들 없이는 카운터 스크린샷을 재현할 수 없다.

가지들은 서로 다른 소유자의 서로 다른 문제다. 아무것도 일치시키지 못하는 로컬 클래스는 당신 쪽의 분류 버그다. 일치하고 큐에 들어가 버리는데 사업자가 깨끗한 전달을 보고한다면 당신 자신의 스케줄러나 셰이퍼를 가리킨다. 로컬에서는 올바르게 보이는데 전달 너머에서 손실이 나타난다면 통신사의 매핑과 계약에서 측정된 경계를 가리킨다. 셋 중 어느 것도 다른 것을 편집해서 고쳐지지 않는다. 그래서 숫자를 함께 모아야 한다.

RFC 2475 는 분류와 컨디셔닝을 관리 도메인 내부에서 하는 작업으로 규정하며, 바로 그렇기 때문에 표시가 큐를 종단 간 예약할 수 없다. IOS XE 스케줄링 가이드 는 위에 설명한 초과 가중치 동작의 참조이며, 계산된 속도를 모델 간에 옮기기 전에 그 플랫폼 비교를 읽을 가치가 있다.

계약을 한곳에 쓰라

로컬 일치, 신뢰 경계, 사업자 클래스, 측정된 서비스 수준을 양측이 서명하는 하나의 문서에 담아라. 그러면 백분율 변경에는 맥락이 있고, 품질 불만에는 소유자가 있다.

로컬 백분율을 바꾸는 것으로 다른 큐의 보장을 고칠 수 없고, 사업자가 지키지 않는 매핑을 어떤 표시 방식도 견디지 못한다. 두 절반을 비교하고, 경계를 이름 붙이고, 그런 다음에야 수치를 인용하라.

관련 글