加载平衡SQL Server 2016数据库和Reporting Services负载的最佳方法

时间:2017-06-02 02:04:27

标签: sql-server reporting-services load-balancing high-availability sql-server-2016

所以我正在开发一个包含4个生产服务器的小型.NET项目:

  1. 网络
  2. 应用
  3. 数据库((SQL Server 2016 Enterprise)
  4. 报告(Sql Server Reporting Services 2016)
  5. 最近中断后,我们在 Report 服务器上安装了一个辅助副本SQL Server数据库实例作为高可用性群集。我们打算在不久的将来在我们的原始数据库服务器上安装SSRS,因此如果任一服务器出现故障,我们就会完全进行故障转移。

    我认为通过负载平衡数据库连接和SSRS加载,有机会更有效地利用两台服务器的计算资源。

    数据库负载平衡理念:

    1. 必须将写入连接定向到群集中的主节点,但只读连接可以转到其中,随着主数据库节点上的写入连接负载的增加,对辅助副本的优先级越来越高。
    2. 数据库调用可以来自SSRS和我的.NET应用程序,并且可以发送到高可用性侦听器。
    3. 数据库操作往往是I / O繁重,而且相对轻中型CPU密集型。
    4. SSRS负载平衡理念:

      1. 报告请求有两个阶段:数据检索和UI呈现。两个组件都可以(理论上)单独负载平衡到任一服务器。
      2. SSRS报告rending(不包括数据检索,但包括SSRS中的任何分组和数据处理)在CPU利用率和最小IO方面相对中等。
      3. 我知道有可用的负载平衡解决方案可以单独负载平衡数据库调用和SSRS,但是有没有可以将数据库和SSRS负载平衡的产品/解决方案?那是评估每台服务器上的负载,并选择最佳服务器来执行负载均衡解决方案收到的每个额外请求?

        这是一个快速图表: enter image description here

        在此图中,SSRS负载均衡器和高可用性侦听器都位于 App 服务器上。主数据库节点位于顶部,标记为“数据库2”,辅助副本位于图中底部服务器上,标记为“数据库1”。两个数据库服务器都安装了SSRS。

        -PS:我们目前的预算仅限于这4台生产服务器,我们正在努力充分利用这些服务器:)这些服务器都是虚拟机,数据库服务器有4个vCPU和64个GB的RAM。 App Server还有4vCPU和32 GB RAM。

1 个答案:

答案 0 :(得分:0)

这并不是太害怕,但我对SSRS扩展部署没什么好说的。

让报告服务引擎决定最佳平衡负载。它将解决sql引擎。 如果您的前端有硬件负载平衡器,那就更好了。我不想在这里发布垃圾博客文章,但我写了更详细的设置。如果您想要链接,请告诉我。 在我看来,任何第三方应用程序都会使您的环境复杂化。

谢谢,克雷格