흥미로운 질문이 있습니다.
Debian Stretch가 설치된 Linux 서버가 있습니다. 서버에는 단일 CPU E5-2680 v2 및 Intel 82599ES 10G 듀얼 포트 NIC가 있습니다. HTTP 등의 다른 서비스는 실행되지 않습니다.
트래픽 조절을 활성화하기 전까지는 모든 것이 괜찮아 보였습니다. 형성 규칙은 htb qdisc
및 bond0
인터페이스 로 구성됩니다 bond1
.
3단계 해시 필터가 있습니다.
대규모 서브넷을 선택하기 위한 4개의 규칙 필터입니다. 규칙은 다음과 같습니다.
protocol ip u32 ht 800:: match ip src 10.15.0.0/18 hashkey mask 0x0000ff00 at 12 link 1:
대규모 서브넷에서 선택하기 위한 60개 정도의 규칙 테이블/24개
protocol ip u32 ht 1:10 match ip src 10.15.16.0/24 hashkey mask 0x000000ff at 12 link 100:
IP와 일치하는 규칙 테이블 256개
parent 1:0 prio 100 protocol ip u32 ht 100:20: match ip src 10.15.16.32 flowid 1:20 class add dev bond0 parent 1:0 classid 1:1 htb rate 24Gbit ceil 24Gbit burst 4096k cburst 256k class add dev bond0 parent 1:1 classid 1:20 htb rate 102400Kbit burst 4096k cburst 256k qdisc add dev bond0 parent 1:20 pfifo_fast
이제 이러한 규칙을 활성화하면 총 트래픽이 최대 약 10Gbps에 이르고 핑 시간이 최대 100ms 이상으로 올라가기 시작합니다. 그러나 이 기간 동안 CPU 로드는 거의 0이었습니다. uptime
표시된 로드는 0.07이었고 각 CPU 코어의 사용률은 약 5%에 불과했습니다. ping
성형규칙을 클리어하니 바로 OK가 되었습니다.
이전에 나는 이것을 사용하고 있었고 sfq
CPU pfifo_fast
부하가 많이 발생했습니다. 그런 다음 빨간색으로 전환하여 CPU 부하 없이 더 나은 결과를 얻었고, 빨간색으로 전환하여 pfifo_fast
빨간색과 거의 동일한 결과를 얻었습니다.
- 또 어떤 병목 현상이 있나요?
- 10Gbps 이상의 네트워크에서 Linux 트래픽 셰이퍼를 사용해 본 사람이 있습니까?