1

複数の子プロセスを生成するアプリケーションがあり、その後複数のスレッドが生成されます。生成されるプロセスとスレッドの数を制御できます。スレッドは 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 が子プロセスに対して有効になっています。複数のコアを利用するために、複数のスレッドを生成する以外に、何かしなければならないことはありますか?

4

1 に答える 1

3

CPU をほとんど使用していません。Network Attached Storage の場合、ボトルネックはおそらくネットワーク接続です。プッシュしているデータの量と、パイプライン (および NAS) が許容できる帯域幅はどれくらいですか?

于 2012-04-23T23:53:09.317 に答える