尝试在远程服务器上执行 PerfMon 跟踪时遇到问题。服务器是 Windows Server 2008 R2 SP1。执行此跟踪的原因是 SQL Server 似乎占用了大量内存,然后没有将其释放回来。这种行为并不奇怪,但我想找出分配内存的时间和原因。
首先让我解释一下,我已经在其他版本的 Windows Server 操作系统上多次使用这些计数器执行了精确的跟踪。我认为自己非常精通 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 但这似乎适用于其他一些操作系统版本,尽管作者没有说明是哪个版本。
我无法在远程服务器上运行性能监视器跟踪,这是怎么回事?谢谢你的任何建议。
我发现这篇文章详细介绍了有关重建 PerfMon 设置的一些步骤。
http://support.microsoft.com/kb/300956
然后我在提升的命令提示符下运行以下命令:
然后我运行了 MMC 并添加了 PerfMon。最初我收到了参数不正确的相同错误。然后我尝试只添加计数器,MMC 似乎“断断续续”我终于能够添加远程计数器。然后我删除了远程计数器并尝试连接到远程服务器并看到了这个
而不是错误信息。它连接正确,目前正在从远程系统收集我的计数器。
SQL Server 可以根据配置和需要以不同的方式分配内存。
您可以通过检查各种“SQL Server:缓冲区管理器”和“SQL Server:内存”性能计数器来监控这一点,但我可以根据经验告诉您,大部分内存用于缓冲区缓存,即缓存来自磁盘。
MSSQL 用于运行其进程、执行查询和存储已编译的执行计划的内存最多是它可以使用的内存总量的 5% 到 10%。剩下的都是缓存(缓存好)。
如果想知道MSSQL可用的内存量是否足够,只需要监控一个性能计数器:“SQL Server: Buffer manager\Page Life Expectancy”。
该值绝不能低于几分钟,最好在一小时或更长时间的范围内。
如果您没有触及安装默认值,它将根据需要使用尽可能多的内存,直到操作系统可用的最大值。
如果不需要,请减少“服务器属性”窗口的“内存”选项卡中的“最大服务器内存”值。
按确定将运行 sp_reconfigure,这是 SQL 服务器从那时起将使用的最多内存。
另一件需要考虑的事情是单击属性(顶部的图标)--> 常规选项卡--> 将“运行方式”更改为在远程计算机中具有权限的 Windows 帐户