저는 TCP 혼잡 제어를 위한 fq_pie 대기열 규칙을 설정하는 데 매우 관심이 있습니다. 을 작성하면 net.core.default_qdisc = fq_pie
최신 /etc/sysctl.d/90-override.conf
커널에서 fq_pie가 활성화되어야 합니다.
그래도 내 데스크탑에서는 작동합니다. 하지만 내 노트북에서는:
$ tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc noqueue 0: dev wlp1s0 root refcnt 2
qdisc mq 0: dev wlp0s20f0u3 root
qdisc fq_pie 0: dev wlp0s20f0u3 parent :4 limit 10240p flows 1024 target 15ms tupdate 16ms alpha 2 beta 20 quantum 1514b memory_limit 32Mb ecn_prob 10
qdisc fq_pie 0: dev wlp0s20f0u3 parent :3 limit 10240p flows 1024 target 15ms tupdate 16ms alpha 2 beta 20 quantum 1514b memory_limit 32Mb ecn_prob 10
qdisc fq_pie 0: dev wlp0s20f0u3 parent :2 limit 10240p flows 1024 target 15ms tupdate 16ms alpha 2 beta 20 quantum 1514b memory_limit 32Mb ecn_prob 10
qdisc fq_pie 0: dev wlp0s20f0u3 parent :1 limit 10240p flows 1024 target 15ms tupdate 16ms alpha 2 beta 20 quantum 1514b memory_limit 32Mb ecn_prob 10
보시다시피 Wi-Fi 어댑터가 2개 있습니다. 내 노트북에는 Qualcomm Atheros(ath10k)가 내장되어 있으며 fq_pie를 활성화할 수 없습니다.
그러나 fq_pie는 TP Link(RTL8188EUS) 어댑터에서 활성화할 수 있습니다.
또한 2개의 다른 노트북(Dell 및 HP)을 사용해 보았지만 통합 WiFi 어댑터가 실제로 fq_pie를 실행하지 않았습니다.
Qualcomm Atheros 및 기타 WiFi 어댑터에 대해 fq_pie를 강제로 활성화하는 방법이 있습니까?
시스템 세부정보:
$ cat /proc/version
Linux version 5.8.12-xanmod1-1 (makepkg@archlinux) (gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP PREEMPT Wed, 30 Sep 2020 14:19:49 +0000
$ ip -V
ip utility, iproute2-v5.7.0-77-gb687d1067169
$ tc -V
tc utility, iproute2-v5.7.0-77-gb687d1067169
답변1
net.core.default_qdisc
로딩시 인터페이스 드라이버에 영향을 미치는 것 같습니다 . 변경 이전에 커널 모듈이 로드된 경우 net.core.default_qdisc
이후 변경 사항에는 영향을 미치지 않습니다. 일부 인터페이스에는행동 변화: 다중 대기열 인터페이스는 그대로 유지되지만 mq
해당 리프는 이 기본값을 상속합니다.루오또는와이즈기본 대기열은 확보되지 않습니다.
드라이버보다 먼저 sysctl이 변경되었는지 확인하려면 다음을 수행할 수 있습니다.
initramfs 스크립트가 변경되었습니까(약간의 조정이 필요할 수 있음),
커널 명령줄에서 로드합니다.이 Q&A누구에게나 말하는 것이 가능하다평상복시스템 제어만 가능커널 5.8부터 시작, 당신이 사용하고 있습니다. 따라서 이론적으로는 부팅 매개변수(아마도 GRUB의 GRUB_CMDLINE_LINUX에 있음)에 무언가를 추가하고 잊어버릴 수 있습니다.
sysctl.net.core.default_qdisc=fq_pie
그러나 실제로 이것은 내장 드라이버에서만 작동합니다.
sch_fq_pie
내장 컴파일 일 가능성은 거의 없습니다 .드라이버 로딩 지연
wlp1s0
(어디서 해야할지 모르겠습니다)rmmod ath10k
따라서modprobe ath10k
새로운 기본값이 적용됩니다.
어쨌든 인터페이스의 qdisc를 즉시 변경하려면 해당 qdisc를 정의하면 됩니다. 그러면 예약된 핸들이 있는 기본 커널 qdisc가 재정의됩니다 0:
. 예를 들어:
tc qdisc add dev wlp1s0 handle 1: root fq_pie