我构建了在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