概括:我需要记录 Windows XP 机器上的资源使用情况,以查明资源不足是否是导致应用程序崩溃的原因。我需要您的建议,如何做到这一点。
语境:有一台装有 Windows XP、MS-SQL Server 2008 R2 Express 和第三方应用程序的工业 PC。
该应用程序从专用硬件收集数据,并将传感器值存储到数据库中。基本上,数据是 UTC 和四个温度。采样间隔为 1 分钟(即最小负载)。再次强调,该应用程序每分钟仅将 5 个值保存到一条记录中的数据库表中一次。
我的任务是实施 SQL Server Service Broker 解决方案,将收集到的数据传输到中央 SQL 服务器。(触发新记录,形成 XML,发送到另一端。)它工作时运行顺利。但是...
问题:应用程序偶尔会停止收集数据。他们声称这是因为实施 SSB 解决方案后资源不足。我猜他们只是用 SQL Server 的更改作为借口。无论如何,他们可能是对的。我需要一些确切的证据来证明崩溃时发生了什么。
由于应用程序记录了 UTC,我知道它何时停止工作(从丢失的温度记录中)。
我的问题:我如何记录资源的使用情况,我应该观察哪些资源,以及我应该使用什么工具来实现此目的?
我没有接受过硬件/操作系统管理方面的培训(只是一些常识),而且以前从未解决过此类问题。
我知道有一种东西叫性能计数器,但我没有使用它们,而且我不知道如何记录它们。电源外壳如果重要的话,请检查计算机上是否安装了实用程序。(我听说可以从 powershell 访问性能计数器,但我对此一无所知。)我知道有性能监视器在机器上,但我不知道它是否可以用于此目的。
感谢您对如何解决问题的任何建议,
彼得
答案1
到目前为止,我发现了以下建议https://serverfault.com/a/140978这似乎与我的问题有关。它建议使用 Windows XP 上可用的 Logman、Relog、Typeperf 命令行实用程序(而不是 PerfMon)。它们似乎符合我的需求(http://support.microsoft.com/kb/303133/en-us?fr=1)。
我还发现了一些关于我应该观察哪些性能计数器的文章……
- http://sqlblog.com/blogs/kevin_kline/archive/2008/03/28/the-most-important-performance-monitor-counters-for-sql-server.aspx
- http://searchsqlserver.techtarget.com/video/SQL-Server-PerfMon-counters-for-tracking-Windows-memory
- http://searchsqlserver.techtarget.com/SQL-Server-PerfMon-counters-for-Windows-operating-system-OS
- http://www.techbubbles.com/sql-server/analyzing-sql-server-performance-using-performance-monitor-counters/