我正在使用一个由多个应用程序和服务组成的系统,几乎所有应用程序和服务都使用 SQL 数据库。
Windows 服务在不同时间做不同的事情,我想跟踪它们。这意味着在某些已部署的系统上,我们看到机器的 CPU 运行过高,我们看到 sql 进程运行过高,但我们无法确定是哪个服务对此负责。
我想知道性能计数器是否适合这项工作。
基本上,我希望能够在某个时刻看到哪个服务被唤醒并正在处理某些事情。
在我看来,我最终可以得到一个 perfcounter
,每个服务的值只有 0 或 1,以显示它是否在做某事,但这看起来不像是正常的perfcounters
的用法。
性能计数器是否合适?
您认为我应该以不同的方式跟踪它吗?
最佳答案
如果您的监控框架/方法已经以监控性能计数器为中心,那么这是一种可行的方法。
就我个人而言,我发现需要更详细的检测才能真正了解我的服务中发生的事情(尽管这可能与我的服务的性质有关)。
我使用 .NET Logging Framework因为它很简单,可以写入多个目标,包括日志文件、事件日志和 TCP 套接字(我有一个简单的监视器,可以监听每个应用程序服务器的日志套接字,并实时向我显示正在发生的事情)。
关于c# - 使用性能计数器跟踪 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1418744/