
tc
SFQ(Random Fair Queuing)를 사용하면 공정한 대역폭 공유를 구성하는 것이 매우 쉽습니다.흐름, 그러나 애플리케이션은 여러 스트림을 열고 가져올 수 있습니다.불공정한 대역폭 공유. 서로 공정한 대역폭 공유를 구성하는 것이 가능합니까?애플리케이션대신에?
각 애플리케이션을 cgroup으로 그룹화하는 것은 분명한 첫 번째 단계처럼 보입니다. SFQ가 클래스 ID 해싱을 지원하는 경우 tc filter
각 cgroup에 클래스 ID를 쉽게 할당할 수 있습니다. 불행하게도 SFQ는 이를 지원하지 않는 것 같습니다. 또 다른 유망한 접근 방식은 카테고리 전반에 걸쳐 가중치 주기를 수행하는 CBQ를 사용하는 것입니다. 불행히도 가중치를 모두 동일하게 만드는 것은 작동하지 않는 것 같습니다.
cgroup 간에 대역폭을 공정하게 공유하는 또 다른 방법이 있습니까?
답변1
net_cls cgroup 컨트롤러를 확인하십시오. 기본적으로 특수 태그( /mntpoint/net_cls.classid
해당 cgroup의 애플리케이션과 연결된 소켓에서 시작되는 모든 패킷에 정의됨)를 추가합니다. 나중에 classid
qdisc에 연결된 필터에서 이 "태그"를 사용하여 트래픽이 발생하는 cgroup을 기반으로 다양한 클래스에 트래픽을 전달할 수 있습니다.
이 주제에 관해 내가 찾은 유일한 문서는 다음과 같습니다.일부 Red Hat 슬라이드[Google을 통한 HTML].