我建立了一种解决方案,可以创建快速的PDF报告。目前看起来我无法让Reporting Services使用所有可用的资源。该系统似乎没有受到IO限制、CPU限制或内存限制。您有什么建议来找出它为什么这样运行?
该应用程序不受网络IO限制,并且为多线程运行,线程数是处理器数的两倍。
我建立了一种解决方案,可以创建快速的PDF报告。目前看起来我无法让Reporting Services使用所有可用的资源。该系统似乎没有受到IO限制、CPU限制或内存限制。您有什么建议来找出它为什么这样运行?
该应用程序不受网络IO限制,并且为多线程运行,线程数是处理器数的两倍。
SQL Server Reporting Services限制运行的报告数量为2个同时的自适应报告和2个同时的Web报告。这是服务器强制实施的硬性限制。
Robin Day可能是正确的,但如果您使用支持超线程的处理器,则可能通过在BIOS中关闭此选项获得性能优势。您可以尝试A / B性能测试。
您还可以检查SQL实例(当您说报告服务时,是指SSRS吗?)未设置处理器亲和性。
Is this a case of not using a multi threaded approach? Is the machine using 100% of one core of a processor and that s the bottleneck?
抱歉说了些显而易见的话,只是在你提到它已经多线程之前的一个想法。恐怕我不能提供更多建议。
您有什么建议可以帮助我弄清为什么它运行得这么慢吗?
有一个API可以将整个进程限制在一个CPU上:使用GetProcessAffinityMask
进行测试。
b) 线程状态和线程等待原因是性能计数器中的两个,也许您可以阅读此内容,以了解为什么您认为应该运行的线程并没有运行。
你的应用程序的所有线程都在争夺一个锁。使用性能分析工具查看是否存在阻塞。
如果你有四个内核,那就解释了为什么你看到了25%的CPU整体使用率。
也许服务器无法通过网络传递更多数据(因此它受网络IO限制)?