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

Sql server 负载平衡SQL Server 2016数据库和Reporting Services负载的最佳方法,sql-server,reporting-services,load-balancing,high-availability,sql-server-2016,Sql Server,Reporting Services,Load Balancing,High Availability,Sql Server 2016,因此,我正在从事一个小型.NET项目,该项目有4台生产服务器: 网 应用程序 数据库((SQL Server 2016企业版) 报告(Sql Server Reporting Services 2016) 在最近的一次停机后,我们在报表服务器上安装了一个辅助副本SQL Server DB实例作为高可用性群集。我们打算在不久的将来在原始数据库服务器上安装SSR,因此,如果任何一台服务器出现故障,我们都可以完成故障切换 我认为有机会通过负载平衡数据库连接和SSRS负载更有效地利用两台服务器的计算资源

因此,我正在从事一个小型.NET项目,该项目有4台生产服务器:

  • 应用程序
  • 数据库((SQL Server 2016企业版)
  • 报告(Sql Server Reporting Services 2016)
  • 在最近的一次停机后,我们在报表服务器上安装了一个辅助副本SQL Server DB实例作为高可用性群集。我们打算在不久的将来在原始数据库服务器上安装SSR,因此,如果任何一台服务器出现故障,我们都可以完成故障切换

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

    数据库负载平衡理念:

  • 写入连接必须定向到群集中的主节点,但只读连接可以定向到任何一个节点,随着主数据库节点上的写入连接负载的增加,对辅助副本的偏好也会增加
  • 数据库调用可以来自SSR和我的.NET应用程序,也可以发送到高可用性侦听器
  • 数据库操作往往是I/O密集型操作,而CPU密集型操作相对较轻
  • SSRS负载平衡理念:

  • 报告请求分为两个阶段:数据检索和UI呈现。这两个组件(理论上)可以分别对任一服务器进行负载平衡
  • SSRS报告呈现(不包括数据检索,但包括SSRS内的任何分组和数据处理)在CPU利用率和最小IO方面相对较高
  • 我知道有一些负载平衡解决方案可以单独对数据库调用和SSR进行负载平衡,但是否有任何产品/解决方案可以同时对数据库和SSR进行负载平衡?即评估每台服务器上的总负载,并选择最佳服务器来执行每一个额外的负载平衡请求解决方案收到了吗

    下面是一个快速示意图:

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


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

    这恐怕不太详细,但我对SSR横向扩展部署有什么好说的

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

    谢谢,克雷格