调整内存升级,采取2

以前我问过一个问题 ,我应该测量什么指标(例如之前和之后)来certificate内存升级。 build议使用Perfmon。

我想知道我应该测量哪个特定的性能计数器。 到目前为止我得到了:

PhysicalDisk/Avg. Disk Queue Length (for each drive) PhysicalDisk/Avg. Disk Write Queue Length (for each drive) PhysicalDisk/Avg. Disk Read Queue Length (for each drive) Processor/Processor Time% SQLServer:BufferManager/Buffer cache hit ratio 

我还应该使用其他什么?

首先,我会build议阅读我的答案如何Windows内存的作品 。 之后,我们来谈谈计数器。 从纯粹的性能监视angular度来看,服务器内存和SQL Server性能无关,主要是因为SQL Server(如果设置正确)使用locking内存中页面的function来覆盖默认的Windows内存pipe理scheme。 只看内存前面提到的计数器是可以的:

SQL内存pipe理器:内存授予待定

SQL缓冲区pipe理器:页面生命期望

SQL Server缓冲区pipe理器对象:缓冲区命中率

我还要补充一点

SQLServer:内存pipe理器:总服务器内存(KB) – 这显示了多lessSQL Server正在pipe理。

SQLServer:内存pipe理器:目标服务器内存(KB) – 它显示了SQL Server根据SQL Server在第一次启动时保留的缓冲区数量认为它有多less。 如果总数小于目标,那么RAM不太可能有帮助。 如果目标更大,您可能会从更多的内存中受益。

另请参阅应针对基准SQL Server性能监视的内容 。

那些可能不是最好的柜台。 磁盘I / O的问题在于它不会很有用,因为除非整个数据库都在内存中,否则磁盘I / O更依赖于数据库优化。 诸如表扫描和报告/加载脚本之类的操作将使您的内存超载。 无论内存如何,繁重的I / O负载都会在日志文件上产生I / O。

这些磁盘计数器不是最好的磁盘分析 – 队列长度并不总是清楚,因为它取决于您的硬件布局。 例如,对于您的光盘,250可能不是一个错误的队列长度,但如果您拥有可处理大量并行请求的大功率SAN,则可能不会。

我宁愿去与主要因素:磁盘超载,I / O需要更长的时间,秒/读,秒/线 – 这是非主观的。 更多的主要数据,如秒/读给出一个独立的数字,不依赖于硬件,较低的响应时间显示你真正想要的。

对于记忆,我会采取:

  • SQL内存pipe理器:内存授予待定
  • SQL缓冲区pipe理器:页面生命期望

最后一个给你一个关于页面再次出来的速度的想法。 但是,你必须确保有人不强制这个 – 表扫描是完美的(基本上你会用表扫描来重载caching,除非整个表都适合内存)。