アプリケーションがTCPトランスポートストリームと同じCPU /コアで実行されていることをどのように確認できますか?

アプリケーションがTCPトランスポートストリームと同じCPU /コアで実行されていることをどのように確認できますか?

次の(非常に単純化された送信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:トランスポートパケットの起動。あなたの質問に答えるために上流によく文書化されています。

関連情報