我構建了在Windows 2003服務器上部署的軟件。該軟件作爲一項服務持續運行,它是我對Windows重要的唯一應用程序。部分時間,它從互聯網檢索數據,部分時間是對數據進行一些計算。它是多線程的 - 我使用大約4-20個線程的線程池。最佳CPU利用率閾值
我不會與所有這些細節感到厭煩,但我只想說,我在池中使更多的線程,多併發工作時,和CPU使用量的上升。 (就像需要其他資源,如帶寬,雖然這不關心我 - 我有很多)
我的問題是這樣的:我應該只是試圖最大限度地使用CPU,以獲得最佳的爆炸我的降壓?直覺上,我認爲以100%的CPU運行是沒有意義的;即使95%的CPU看起來很高,幾乎就像我沒有給操作系統足夠的空間去做它需要做的事情。我不知道確定最佳平衡的正確方法。我猜測我可以測量和測量,並且可能發現最佳吞吐量是在CPU平均利用率爲90%或91%等情況下達到的,但是...
我只是想知道是否有一個好的經驗法則對這個???我不想假設我的測試將考慮各種工作負載的變化。我寧願玩它安全一點,但不太安全(否則我正在使用我的硬件)。
你有什麼建議?對於Windows上的多線程,混合負載(某些I/O,某些CPU)應用程序,使用哪種性能優化的智能規則?
如果您給線程正常的優先級,操作系統很可能也會這樣做。你不想做的就是給予他們高度優先。 – 2010-02-20 12:00:31