Windows 2003 サーバーに展開するソフトウェアを構築しました。このソフトウェアは継続的にサービスとして実行され、Windows ボックスで私にとって重要な唯一のアプリケーションです。インターネットからデータを取得している時間もあれば、そのデータに対して何らかの計算を行っている時間もあります。マルチスレッドです。私は、およそ 4 ~ 20 個のスレッドのスレッド プールを使用しています。
これらすべての詳細について説明するのは退屈ではありませんが、プール内でより多くのスレッドを有効にすると、より多くの同時作業が発生し、CPU 使用率が上昇するということだけを言っておけば十分です。(帯域幅などの他のリソースの需要も同様ですが、私には関係ありませんが、十分あります)
私の質問は次のとおりです。費用対効果を最大限に高めるには、単に CPU を最大限に活用する必要がありますか? 直感的には、100% の CPU で実行するのは意味がないと思います。95% の CPU でさえ高いように見えます。OS が必要なことを実行するための十分なスペースを OS に与えていないようです。最適なバランスを特定する正しい方法がわかりません。私は測定して測定することができ、おそらくCPUの平均使用率が90%または91%などで最高のスループットが達成されることがわかると思いますが...
これについて良い経験則があるかどうか疑問に思っていますか??? 私のテストでは、あらゆる種類のワークロードのバリエーションが考慮されるとは限りません。少し安全にプレイしたいのですが、安全すぎないようにします (または、ハードウェアを十分に活用していません)。
おすすめは何ですか?Windows 上のマルチスレッドの混合負荷 (一部の I/O、一部の CPU) アプリケーションの使用に関するスマートでパフォーマンス重視のルールは何ですか?