在自托管 Web 应用程序中使用性能计数器
Posted
技术标签:
【中文标题】在自托管 Web 应用程序中使用性能计数器【英文标题】:Use performance counter in self host web application 【发布时间】:2014-06-18 12:51:11 【问题描述】:我想对我的 Web Api 自托管应用程序进行压力测试。此应用程序托管在 Azure 辅助角色上。
我知道如何将性能计数器从我的 Worker Role 获取到我的存储(用于分析),但是因为我的 Web api 是使用 Microsoft.Owin.Host.HttpListener 自托管的,所以我不知道是否有一些现有的 perf我可以插入的计数器。
我已经尝试了几个 perfmon 计数器:
AspNet 应用程序 Web 服务(这只允许我选择 IIS 中定义的 Web 应用程序)当我选择进程时,我没有像 req/sec 等有趣的计数器...
有没有办法为自托管 Owin 应用程序激活一些计数器?
只使用我没有做的配置? 使用其他自主机? 使用其他组件并修改我的代码? (添加属性...,我见过类似的东西https://github.com/aliostad/PerfIt)
非常感谢。
【问题讨论】:
你找到答案了吗? 【参考方案1】:我看到你提到了诊断,这些是我在诊断中使用的:
<PerformanceCounterConfiguration counterSpecifier="\Asp.net\Request Execution Time" sampleRate="PT1M" />
<PerformanceCounterConfiguration counterSpecifier="\ASP.net\Requests Rejected" sampleRate="PT1M" />
<PerformanceCounterConfiguration counterSpecifier="\Web Service(_Total)\Current Connections" sampleRate="PT1M" />
<PerformanceCounterConfiguration counterSpecifier="\Web Service(_Total)\Connection Attempts/sec" sampleRate="PT1M" />
我所做的是进入 perfmon 并在我的开发机器上右键单击“添加计数器”,然后在 cmd 提示符中输入我觉得有趣的名称,如下所示:
typeperf "\Web Service(_Total)\Connection Attempts/sec"
我能够测试很多,看看有什么用处。
希望对你有帮助,
=德文郡
【讨论】:
以上是关于在自托管 Web 应用程序中使用性能计数器的主要内容,如果未能解决你的问题,请参考以下文章