使用性能监视器连接到远程服务器不起作用

使用性能监视器连接到远程服务器不起作用

我在尝试对远程服务器执行 PerfMon 跟踪时遇到问题。该服务器是 Windows Server 2008 R2 SP1。执行此跟踪的原因是 SQL Server 似乎占用了大量内存,然后又不释放。这种行为并不奇怪,但我想知道何时以及为何分配内存。

首先让我解释一下,我在其他版本的 Windows Server OS 上使用这些计数器执行了多次精确跟踪。我认为自己对 Perf Mon 相当熟练。我已经验证了其他管理单元正在运行(例如计算机管理),远程注册表服务正在运行,没有打开防火墙,并且我可以通过 WMI 连接(使用 PowerShell WMI 命令单独验证)。并且我以我的域管理员帐户而不是我的标准用户帐户运行 MMC。尝试从 Server 2008 R2 SP1 测试服务器执行这些步骤时也会出现同样的问题。

我运行 MMC 并添加 Perf Mon。如果我直接运行,也会发生同样的事情perfom.exe。此时,如果我尝试切换到另一台计算机,我会收到以下错误

在此处输入图片描述

然后我取消该操作并重试。添加性能监视器管理单元,然后单击+以添加计数器。我将系统更改为该级别的远程服务器,如图所示

在此处输入图片描述

一切似乎都正常。尝试访问每个组中的计数器时存在延迟。如果我打开“物理磁盘”,它会显示 3:C、D、E,它们正是服务器上命名的物理磁盘。在我的本地系统上是 C 和 G。

我添加了物理磁盘的所有实例:磁盘读取/秒单击“确定”,我在监视器画布中看到什么?C 和 G 作为磁盘添加,计算机列填充了我的本地系统主机名。

一位同事建议这样做:http://blogs.technet.com/b/abizerh/archive/2009/07/15/error-the-parameter-is-incorrect-when-connecting-to-a-server-using-wmi.aspx 但这似乎是针对其他操作系统版本的,不过作者并未说明是哪一个。

这是怎么回事,我无法在远程服务器上运行性能监视器跟踪?感谢您的任何建议。

答案1

我发现这篇文章详细介绍了重建 PerfMon 设置的一些步骤。

http://support.microsoft.com/kb/300956

然后我在提升的命令提示符下运行以下命令:

cd /d %systemroot%\system32
lodctr /r
cd /d %systemroot%\syswow64
lodctr /r

然后我运行 MMC 并添加 PerfMon。最初我收到相同的错误,即参数不正确。然后我尝试添加计数器,MMC 似乎“卡顿”我终于能够添加远程计数器。然后我删除了远程计数器并尝试连接到远程服务器,看到了这个

在此处输入图片描述

而不是错误消息。它已正确连接并且当前正在从远程系统收集我的计数器。

答案2

执行此跟踪的原因是 SQL Server 似乎正在抓取大量内存然后又不将其释放回来。

SQL 服务器可以根据配置和需要以不同的方式分配内存。

您可以通过检查各种“SQL Server:缓冲区管理器”和“SQL Server:内存”性能计数器来监控这一点,但我可以根据经验告诉您,绝大部分内存用于缓冲区缓存,即从磁盘缓存数据页。MSSQL
用于运行其进程、执行查询和存储编译的执行计划的内存最多占其可使用的总内存量的 5% 到 10%。其余的都是缓存(缓存很好)。

如果你想知道MSSQL可用的内存量是否足够,你只需要监视一个性能计数器:“SQL Server:Buffer manager\Page Life Expectancy”。

这个值不应该低于几分钟,理想情况下应该在一小时或更长的范围内。

如果您没有触及安装默认值,它将使用所需的内存,直至达到操作系统可用的最大值。

如果不希望出现这种情况,请减少“最大服务器内存”值记忆选项卡服务器属性窗户。

紧迫好的将运行 sp_reconfigure,这是从那时起 SQL 服务器将使用的最多内存。

答案3

另一件需要考虑的事情是单击属性(顶部的图标)-->常规选项卡-->将“以...身份运行”更改为在远程计算机中具有权限的 Windows 帐户

相关内容