Linux 2.6.xを実行する4コアマシンがあります。マシンはシングルホーム(すなわち、1つのNICを有する)である。Linuxネットワークスタックは、マルチコアマシン上で並列に動作しますか?
このマシンでは、ネットワーク上の4つの異なるホストとのネットワークI/Oを行う4つのプロセス(または1つのプロセスで4つのスレッド)を実行します。
質問:これらの4つのネットワークI/Oスレッドは並行して実行できますか? TCP/IPスタック(NICデバイスドライバを含む)が、複数のコアを完全に並列実行するためのすべての同時コードであると仮定できますか?ネットワークI/Oのどの段階でも、これらのスレッドはTCP/IPスタック内の共有リソースを取得しようとすることをブロックし、スタックの一部、つまりトップレベルにある4つのアプリケーションレベルのスレッドを部分的に逐次で完全に平行ではない?
すべてのポート/ IRQを別のCPUにバインドできるので、複数のNIC(または複数のポートを持つ1つのNIC)を追加するほうがおそらく良いでしょう。 – Marcin
チップをありがとう。 +1。 – Harry