複数の子プロセスを生成するアプリケーションがあり、その後複数のスレッドが生成されます。生成されるプロセスとスレッドの数を制御できます。スレッドは NAS に対して特定の読み取り/書き込み操作を行い、これにかかる時間を記録します。
奇妙なのは、複数のスレッドを使用すると、読み取り/書き込み操作の実行にかかる時間が長くなることです。アプリケーションを開始する前と終了時に /proc/stat を読み、これを取得しました(いくつかの計算の後):
cpu0: 1.0050% usrtime, 2.5126% systime, 95.4774% idle, 0.5025% softirq
cpu1: 0.0000% usrtime, 0.0000% systime, 100.0000% idle, 0.0000% softirq
sched_getaffinity も確認しましたが、両方の CPU が子プロセスに対して有効になっています。複数のコアを利用するために、複数のスレッドを生成する以外に、何かしなければならないことはありますか?