Linux 트래픽 조절(tc)의 성능 병목 현상

Linux 트래픽 조절(tc)의 성능 병목 현상

흥미로운 질문이 있습니다.

Debian Stretch가 설치된 Linux 서버가 있습니다. 서버에는 단일 CPU E5-2680 v2 및 Intel 82599ES 10G 듀얼 포트 NIC가 있습니다. HTTP 등의 다른 서비스는 실행되지 않습니다.

트래픽 조절을 활성화하기 전까지는 모든 것이 괜찮아 보였습니다. 형성 규칙은 htb qdiscbond0인터페이스 로 구성됩니다 bond1.

3단계 해시 필터가 있습니다.

  1. 대규모 서브넷을 선택하기 위한 4개의 규칙 필터입니다. 규칙은 다음과 같습니다.

    protocol ip u32 ht 800:: match ip src 10.15.0.0/18 hashkey mask 0x0000ff00 at 12 link 1:
    
  2. 대규모 서브넷에서 선택하기 위한 60개 정도의 규칙 테이블/24개

    protocol ip u32 ht 1:10 match ip src 10.15.16.0/24 hashkey mask 0x000000ff at 12 link 100:
    
  3. 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가 되었습니다.

이전에 나는 이것을 사용하고 있었고 sfqCPU pfifo_fast부하가 많이 발생했습니다. 그런 다음 빨간색으로 전환하여 CPU 부하 없이 더 나은 결과를 얻었고, 빨간색으로 전환하여 pfifo_fast빨간색과 거의 동일한 결과를 얻었습니다.

  • 또 어떤 병목 현상이 있나요?
  • 10Gbps 이상의 네트워크에서 Linux 트래픽 셰이퍼를 사용해 본 사람이 있습니까?

관련 정보