noqueue qdisc에 대한 qlen 1000의 의미는 무엇입니까?

noqueue qdisc에 대한 qlen 1000의 의미는 무엇입니까?

ip addr showKubernetes 포드의 출력

root@customer-fd99fb7dc-82hrr:/app# ip -c addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 8e:e3:d2:b5:d2:94 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.171.139/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::8ce3:d2ff:feb5:d294/64 scope link 
       valid_lft forever preferred_lft forever

etho0@1f6쌍의 한쪽 끝입니다 veth. 이것이 설명한다qdisc noqueue

noqueue qdisc에 대한 제가 이해한 바는 가능한 경우 네트워크 패킷을 즉시 전송하고, 그렇지 않으면 패킷을 삭제한다는 것입니다. 따라서 어떤 대기열에서도 noqueue가 지원되지 않는다고 가정합니다. 그러나 qlen 1000그것은 내 이해와 모순됩니다.

noqueue이는 내부 대기열이 있다는 뜻인가요 ? noqueue qdisc를 pfifo_fast에서 3개의 내부 클래스/밴드를 뺀 값으로 처리할 수 있나요?

답변1

qlen사용 중이 ip link set eth0 txqueuelen 1000거나 ifconfig eth0 txqueuelen 1000(ifconfig(8) 보기)

커널에서는 이것이 호출되며 기본값 dev->tx_queue_len은 입니다 DEFAULT_TX_QUEUE_LEN = 1000.ip link ls

대기열 규칙이 장치에 연결되면 장치 qlen설정을 가져와서 사용합니다. qdisc를 다른 qdisc로 교체해도 여전히 동일한 것을 사용 qlen하거나 noqueueqdisc처럼 무시합니다.

(면책조항: 커널 전문가가 아닙니다)

관련 정보