tc
コマンドとqdiscで何を制御しますかsysctl net.core.default_qdisc
?考える
$ tc qdisc show dev eth2
qdisc mq 0: dev eth2 root
$ sysctl net.core.default_qdisc
net.core.default_qdisc = pfifo_fast
このシステムでは、デフォルトのqdisc設定は次のとおりです。pfifo_fastしかし、使用されたqdiscはMQ(マルチキュー) 再起動後。それらが直接関連していないか、少なくとも「すぐに利用可能な」方法ではないことは明らかです。 このリンクLinuxネットワークスタックのキューイングに関して明確にtc qdisc ...
適用されます。待ち行列これは、IPスタックとドライバキューの間にあります。
誰もがこれら2つを明確に区別するのに役立ちますか?
答え1
マルチキュー(「mq」)スケジューラを使用すると、Linuxカーネルは、パケット処理負荷が複数のCPUコアに分散するRSS(Receive Side Scaling)という機能をサポートできます。
私のUbuntu 18.04.1デスクトップシステムでは、net.core.default_qdiscはpfifo_fastに設定されており、次のコマンドを実行します。
$ tc qdisc show dev eth0
出力は次のとおりです。
qdisc mq 0: root
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スケジューラは、デフォルトでデバイスeth0に2つのpfifo_fastキューを設定します。
問題が解決することを願っています。