小编D.C*_*.C.的帖子

如何从基线计算所需资源以及应该衡量什么?

我必须处理以下情况:

目前我们有

  • 1 个集群,包含 5 个节点,运行 10 个实例(SQL Server 2008 企业版),以及
  • 1 个集群,2 个节点运行 5 个实例(SQL Server 2014 标准版)

正在使用。所有服务器都是在VMWare 中运行的虚拟服务器。

我们想要设置一个新的集群(SQL Server 2014 Enterprise)。第一步,将迁移 2008 Enterprise 集群中的 1 个实例和 2104 Standard 集群中的 1 个实例。

于是,老板问了我两个问题:

  1. 我们需要多少个核心(目标:最大限度地降低许可成本)?
  2. 我们需要多少内存?

我的回答是:“这取决于......”现在我必须通过监控接下来的几周来提供确凿的事实。伟大的!(小心讽刺)

我对第一个问题的处理方法:

我计划使用 perfmon.exe 进行监控

  • 处理器\% 处理器时间(_总核和单核),
  • 处理器\% 用户时间(_总核和单核),
  • 处理器\%中断时间(_总和单核)-这真的有必要吗?-, 和
  • 系统\处理器队列长度

问题是,这些数据从哪里获取呢?从节点?来自 SQL Server?

在第一种情况下,它应该很简单:第一个实例 -为了简单起见vsql2008ent-1\instanceX - 当前正在节点上运行,我们将其命名为节点sql2008NodeA。正常情况下,该节点上不应运行任何其他实例或服务器。所以我从哪里获取数据并不重要,不是吗?如果发生灾难,其他实例也将在此节点上运行。但我们希望有一个正常运行的基线。

第二个实例 - vsql2014stan-1\instanceY - 与其他 2 个实例共享其节点 - sql2014NodeA。在这种情况下,我永远无法确定实例真正需要多少核心才能平稳运行,对吧?这样我就可以监控实例了。但结果意味着什么呢?它仅显示该实例实际使用的CPU资源。但如果有可用的内核,是否会使用更多内核?那么上述问题的答案是什么呢?

内存是另一个问题。由于过去发生过几次灾难,当所有实例都落在同一节点上时,我为每个实例设置了最大服务器内存的上限。此限制取决于节点的可用内存(当前分别为 100GB 或 120GB)。那么如何监控呢?如果所有内存都用完,一切似乎都清楚了:内存不足。如果一切都变慢:内存不足。但我真正需要多少内存?

我尝试总结一下我的问题:

  1. 我应该从哪里获取测量值(节点与服务器)? …

sql-server-2008 monitoring sql-server sql-server-2014

5
推荐指数
1
解决办法
122
查看次数