WCF和ASP.NET Web API 接口执行时间监控

软件产品常常会出现这样的情况:产品性能因某些无法预料的瓶颈而受到干扰,导致程序的处理效率降低,性能得不到充分的发挥。如何快速有效地找到软件产品的性能瓶颈,则是我们感兴趣的内容之一。

性能计数器的确是Windows Server中一款非常强大的工具,它可以让你及时了解到服务器的各项性能指标,从而你可以知悉服务器的运行状态是否正常,帮助你分析定位服务器可能出现的问题。具体可以参看 利用Windows性能计数器(PerformanceCounter)监控

三种不同的WCF相关性能计数器与.NET Framework 3.5 一起安装。在性能监控器中,你可以在ServiceModelService,ServiceModelEndpoint和ServiceModelOperation下面看到这些计数器。你可以选择通过配置来为你的应用程序开启这些

WCF性能计数器级别之服务性能计数器

服务性能计数器将服务行为作为整体来进行衡量,可用于诊断服务整体性能。如果使用性能监视器查看,可以在 ServiceModelService 3.0.0.0 性能对象下找到服务性能计数器。使用以下模式命名计数器实例:

ServiceName@ServiceBaseAddress服务范围内的计数器是从终结点集合中的计数器聚合来的。

创建新的 InstanceContext 时,用于创建服务实例的性能计数器将递增。请注意,即使在(通过现有服务)收到非激活消息时,或在从一个会话连接到实例、结束会话然后从其他会话重新进行连接时,也将创建新的 InstanceContext。

WCF性能计数器级别之终结点性能计数器

使用终结点性能计数器可以查看反映终结点如何接受消息的数据。使用性能监视器查看时,可在 ServiceModelEndpoint 3.0.0.0 性能对象下找到终结点性能计数器。使用以下模式命名计数器实例:

(ServiceName).(ContractName)@(endpoint listener address)数据与为单个操作收集的数据类似,但它只在终结点之间聚合。

终结点范围内的计数器是从操作集合中的计数器聚合来的。

注意: 如果两个终结点具有相同的协定名称和地址,它们将映射到同一个计数器实例中。

WCF性能计数器级别之操作性能计数器

如果使用性能监视器查看,可以在 ServiceModelOperation 3.0.0.0 性能对象下找到操作性能计数器。每个操作都有一个单独的实例。也就是说,如果给定的协定具有 10 个操作,则有 10 个操作计数器实例与该协定相关联。对象实例按下面的模式命名:

(ServiceName).(ContractName).(OperationName)@(first endpoint listener address)使用此计数器可以衡量调用的使用方式以及操作的执行情况。

当计数器在多个范围内可见时,从范围的较高一级收集到的数据会与从范围的较低一级收集到的数据相聚合。例如,终结点处的 Calls 表示终结点内所有操作调用的总和;服务处的 Calls 表示对服务内所有终结点的所有调用的总和。

下面我们来讨论下WCF和ASP.NET Web API 接口执行时间监控,下面是我网上找到的相关解决方案

Capturing WCF Request Execution Time :通过性能计数器和DispatchMessageInspector实现接口执行时间的统计

Tracing in ASP.NET Web API:通过Trace功能统计执行时间

http://www.strathweb.com/2012/11/realtime-asp-net-web-api-tracing-with-signalr/

https://gist.github.com/3174719

http://www.cnblogs.com/icuit/archive/2012/12/09/2810482.html

http://dkochnev.blogspot.com/2011/06/wcf-framework-40-monitoring-service.html

http://kleindublin.blogspot.com/2009/02/wcf-event-log-entry-servicemodelservice.html

http://blogs.microsoft.co.il/blogs/idof/archive/2011/08/11/wcf-scaling-check-your-counters.aspx

http://www.cnblogs.com/danielWise/archive/2011/02/22/1960320.html

WCF Service Performance Monitoring using “Perfmon”

轻松地向 MVC 应用程序中添加性能计数器

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Rainbond开源「容器云平台」

好雨云帮每周更新日志(2017.02.27-2017.03.12)

12730
来自专栏日常学python

30行Python代码实现自动收发邮件

生活或者工作中我们经常容易忘记一些事情,这时候我们需要借助一些事物来提醒我们。读者中应该有很多运维攻城狮和测试攻城狮,服务器有异常时需要提醒我们,自动化测试执行...

31630
来自专栏程序源代码

python学习手册-爬爬那些年咱没见过的校花图片

上边这张截图就是这个例子在启动后获取的图片。 下面咱们就开始来写这个例子。 我本的开发的环境: 1、IED开发工具:使用是的Pycharm 2、python ...

40160
来自专栏涤生的博客

服务框架之注册中心,你不知道的内幕

前一篇服务框架技术栈粗略分析了服务框架需要的各个核心模块,首先提到的就是注册中心,注册中心实现了服务注册和发现的功能,在服务框架中也发挥着重要的作用。今天主要围...

15220
来自专栏运维技术迷

DNS服务器4013警告信息的解决方法

今天例行维护域控,发现一直出现DNS无法启动,一直在提示4013,感觉很不可思议。对比另外一台辅助域控的设置,都没有问题。只好一步一步的来细致的检查,终于被我找...

38260
来自专栏运维技术迷

chattr命令

chattr命令用来改变文件属性。这项指令可改变存放在ext2/3/4文件系统上的文件或目录属性。 一、文件或目录属性 1.1 属性 这些属性共有以下8种模式...

35750
来自专栏IMWeb前端团队

腾讯云从零部署nodejs站点

最近入手了一台腾讯云机子,用于团队社区站点的建设,站点架构: 数据库服务:mongodb 后台:nodejs + express 接入:nginx   整个购买...

71000
来自专栏快乐八哥

搭建AngualarJS开发环境

1.选择Web浏览器 Chrome和Firefox浏览器 2.选择代码编辑器 Subline Text和Visual Studio Code 3.安装Web...

21760
来自专栏草根专栏

使用 coverlet 查看.NET Core应用的测试覆盖率

代码覆盖(Code coverage)是软件测试中的一种度量,描述程式中源代码被测试的比例和程度,所得比例称为代码覆盖率。

10230
来自专栏Seebug漏洞平台

DeDeCMS v5.7 密码修改漏洞分析

织梦内容管理系统(DedeCms)以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展,目前的...

50080

扫码关注云+社区

领取腾讯云代金券