mq 최상위 qdisc 아래에 qdisc 추가

mq 최상위 qdisc 아래에 qdisc 추가

이 LWN 기사사람들이 "아래" 대기열에 대한 네트워크 스케줄러를 추가/교체할 수 있다는 제안MQ"가상 스케줄러" 두 가지 모두 다음과 같은 목적을 나타냅니다.

The mq scheduler does two things:

- present device TX queues as classes, allowing to attach
  different qdiscs to them, which are grafted to the TX queues

- present accumulated statistics of all device queue root qdiscs

나는 이것을 하는 방법에 대해 교육을 받고 싶습니다. 나는 많은 조합을 시도했습니다. 예를 들어, 다음 기본 목록(CentOS 7.6)에서:

# tc qdisc show dev eth2
qdisc mq 0: root 
qdisc pfifo_fast 0: parent :8 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :7 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :6 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :5 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :4 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :3 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :1 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

다양한 스케줄러를 접목하려고 노력하면서 많은 변형을 시도했습니다.mq보다 낮음. 다음은 몇 가지 시도입니다.

# tc qdisc add dev eth2 parent 0:1 fq_codel target 1ms interval 10ms quantum 9014
RTNETLINK answers: No such file or directory
# tc qdisc add dev eth2 parent 0:1 handle 1: fq_codel target 1ms interval 10ms quantum 9014
RTNETLINK answers: No such file or directory

아래에 다양한 스케줄러를 배치하는 마법을 아는 사람이 있나요?MQ뿐만 아니라pfifo_fast? 매뉴얼 페이지와 많은 인터넷 기사, 참조 자료가 너무 실망스럽습니다.뿌리그리고부모스케줄러 및 대기열 정보. 그러나 위 명령의 출력에서 tc qdisc show dev eth2​​루트와 부모가 무엇인지 적절하게 설명할 수 있는 사람은 아무도 없습니다. 추측하고 있지만 내 추측은 멀리 있는 것 같습니다.

답변1

커널 기본값예약된다루다0:올바르게 인용할 수 없습니다(기본 값 0: ). 먼저 qdisc 루트를 (재)설치해야 합니다MQ, 유효한 핸들을 사용하십시오(예:0:):

# tc qdisc add dev eth2 root handle 1: mq

이제 다음을 제공해야 합니다.

# tc qdisc show dev eth2
qdisc mq 1: root 
qdisc pfifo_fast 0: parent 1:8 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent 1:7 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent 1:6 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent 1:5 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent 1:4 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent 1:3 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent 1:2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent 1:1 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

이제 0:1 대신 상위 1:1을 사용하여 예상대로 명령을 실행할 수 있습니다.

관련 정보