次の(非常に単純化された送信TCPキュー)フローを想定します。
-->[app (nginx)]
-->[send_buffer(tcp_wmem)]
-->(qdisc txqueuelen)
-->[ring buffer(tx_rx)]
-->(dma)
-->[nic]
~のためリングバッファの送信ドライバスクリプトを使用して、アフィニティとそのキューをCPU /コアごとに分割することができます。
~のため送信キューの規律使えfq_codel
ますアプリケーション(例:nginx)また、いくつかの方法(cpu_worker_affinityなど)もあります。
しかし、アプリケーションが次から実行されていることをどのように確認しますか?CPU/コアXネットワークストリーム(send_buffer)と同じCPU /コアで実行されますか?
要約すると、アプリケーションは常にTCP転送バッファ(固定されている場合)と同じCPU /コアで実行されますか? (それでは、Linuxはどのようにこれを行うのですか?)
ありがとう
答え1
あなたが探しているキーワードはXPS:トランスポートパケットの起動。あなたの質問に答えるために上流によく文書化されています。