2x Opteron6272と64GBのRAMを搭載した新しいHPProliantサーバーでマルチスレッドアプリケーションのベンチマークを試みています。
デスクトップマシン(さまざまなi7およびXeon X5675プロセッサ)でアプリケーションを実行すると、アプリケーションによってすべてのコアの使用率がほぼ100%になります。
サーバーでアプリケーションを実行すると、実行するスレッドの数に関係なく、アプリケーションの合計CPU使用率は約20〜25%になります。つまり、32スレッドで実行している場合、32コアすべてが約20%でハングし、16スレッドを実行している場合、約40%でハングします。
私はこの問題に当惑しています。誰がこれを引き起こす可能性があるのか考えていますか?
アプリが大量のデータを処理している場合は、データのパスをたどってみてください。入力データがネットワークから供給されている場合は、遅延、帯域幅の制限、または送信エラーの可能性を確認してください。ディスクI/Oをすでに確認しましたが、そうでなければボトルネックの可能性があります。
最後になりましたが、これは高度にマルチスレッド化された.NETアプリケーションであるため、 サーバーガベージコレクション が使用されていることを確認する必要があります。そうしないと、説明されているように奇妙な負荷特性が表示される可能性があります この投稿ではスタックオーバーフロー から。