APM for .NET 评测系列: OneAPM vs SCOM - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oneapm001
V2EX    .NET

APM for .NET 评测系列: OneAPM vs SCOM

  •  
  •   oneapm001 2015-04-30 01:12:34 +08:00 2866 次点击
    这是一个创建于 3896 天前的主题,其中的信息可能已经有所发展或是发生改变。

    随着.NET技术的开源和推广,越来越多的企业选择使用.NET语言开发业务系统,其性能问题是大家共同面临的最棘手的问题。
    笔者在此向大家分享一款国内还算靠谱的产品OneAPM,来管理业务系统的性能及Http ERROR。并从安装,性能,功能等几个方面与SCOM进行一个简要的对比。

    OneAPM vs SCOM

      安装
      OneAPM:一键安装
      OneAPM for .NET提供免费版和付费版。免费版开放了响应时间,http error监控等常用功能,一些深度剖析的功能需要付费,不过注册后可以试用15天。
      安装方面基本上是一键安装,非常简单,步骤如下:
      注册OneAPM官网账号(网址为http://www.oneapm.com/)
      官网下载.NET Agent进行一键安装。
      部署.NET应用程序到本地IIS并重启IIS,即可使用。
      另外OneAPM支持的操作系统包含Windows Server 2003、Windows Server 2008、Windows Server 2012、Windows Vista、Windows7。
      流程如图所示:

    a

      官网查看应用性能情况
      SCOM:对比而言安装比较复杂,需要很多先决条件
      SCOM属于System Center产品组件,目前Microsoft不提供免费版使用,需要付费或者在一定的试用期内使用。其中标准版和数据中心版都包含SCOM组件,价格分别是$1,323和$3,607。
      SCOM的安装需要一些先决条件,比较繁琐:
      需要开启服务器管理器功能,并添加一些角色和功能。
      需要安装System CLR Types for SQL Server 2012。
      需要安装Reporting Viewer 2012。
      安装Operations Manager。
      导入Windows Server OS系统管理包。
      导入APM对应IIS平台管理包。
      导入APM管理包。
      建立.NET APM监视,并根据提示重新启动IIS。
      服务器自动启动APM监视服务,并等待Web应用程序数据收集。
      另外SCOM的Web控制台和管理服务器功能需要的操作系统版本是Windows Server 2008 R2 Service Pack 1或更高的版本,并只能安装在Active Directory目录服务的网络上。
      流程如图所示:

    b

      性能
      在开启代码级性能监控的同时,对系统自身性能的影响往往是最受关注的问题。
      OneAPM:低于3%,有国内大型企业使用的案例
      从Oneapm官方给的数据来看,这个值是低于3%。即安装.net探针后,对系统的CPU及内存的影响低于3%,一般这个程度的影响对系统来说是能够被接受的。
      从使用案例上来看,积木盒子、药房网,中国移动等一些大中型企业的生产系统都在用这个产品。
      SCOM:未发现官方性能数据及案例
      目前Microsoft System Center官方并未给出开启代码级监控功能后,实际的性能损耗。
      从使用案例上来看,目前没有了解到国内中大型企业在生产系统中使用SCOM的代码级监控的案例。

      功能
      下文中我将主要从代码级Trace、SQL以及Error三点常用功能对比OneAPM以及SCOM。
      代码级Trace:能够定位到缓慢的方法类及Sql语句。
      OneAPM
      当系统发生错误和缓慢时,OneAPM提供了trace功能能够定位到代码中缓慢的方法类和Sql预计。
      如图所示,我们可以看到OneAPM对Web事务(即一次http请求)的抓取。在左侧页面中,显示了Web事务的列表,用户可以查看事务的耗时,定位哪些http请求执行缓慢。
    c
      对于需要做深度剖析的Web事务,可以点击详情,查看每个组件及方法类的性能。

      我们可以详尽地看到Trace耗时的时间戳。耗时百分比中将耗时最慢因素进行了红色标识,可以通过方法跟踪,辅助程序开发人员或者IT团队来修复问题。甚至,OneAPM还可以诊断出执行缓慢的SQL语句。很明显,一条Select语句是关键影响因素。
    d
      SCOM:能够定位到缓慢的方法类及Sql语句:
      Application Diagnostics控制台是System Center 2012 - Operations Manager中.NET应用程序性能监视的事件管理系统。用户可以使用Application Diagnostics控制台监视部署的.NET应用程序是否出现减速、故障和失败,并且可以确定问题的来源。
      在Application Diagnostics控制台中,可以查看网站APM性能及应用程序的错误,本质就是APM监视网站,提供给应用程序人员来做应用程序的监视。
      同OneAPM相似,Application Diagnostics也为两种事件提供监测:一种与应用程序性能相关,一种与应用程序失败和错误(通常为链接或安全性问题)相关。我们这一小节主要简述程序性能,有关应用程序的失败和错误将在下文涉及。
      如图所示,打开Application Diagnostics网站,可以查看某个应用的APM性能。
    e
      选择其中一个应用后,可以查看该应用下的其中一个请求,可以查看到该请求的耗时体验。SCOM也为用户提供了请求的堆栈信息,为运维人员向下挖掘到堆栈。
    f
      通过这些堆栈信息可以获取到事件发生的顺序,在视图中还可以看到花费时间的概述以及问题的所在,以及提供了代码级别的APM数据。
    g
      数据库监控
      OneAPM:缓慢的Sql列表及Sql trace
      OneAPM不仅提供代码级的Traces,还提供了Database监控,与Web事务监控相似,SQL性能监控为我们提供了不一样的视角。从图中我们可以看到左侧罗列出的SQL语句,OneAPM为我们诊断出了每一个SQL语句的平均响应时间以及它们的吞吐量。
    h
      点击一条你所关心的数据,就会在右侧页面看到它的详细情况。
    i
      与Web事务对应的Traces相似,我们同样可以看到某条SQL语句对应的多次慢SQL情况。
    j
      点击某一条所关心的SQL情况,就可以看到详情。OneAPM诊断出该条SQL语句的详细信息,包括调用该SQL的URL,方法类,执行计划等。
    k
      SCOM:未发现数据库监控功能
      目前,笔者暂没发现SCOM提供像OneAPM一样的SQL维度视角的性能监测功能,如果有读者提出异议,非常欢迎指正。
      对于Http ERROR的监控
      OneAPM:抓取Http ERROR并抓取Error Trace
      OneAPM默认监控非404的Http请求错误,通过OneAPM的监测,可以诊断出错误信息的详情。包括发生该错误的URL,代码栈,错误发生时间等信息。如图所示。
    l
      SCOM
      上文提到的Application Diagnostics为错误事件提供监测,一般与应用程序失败和错误(通常为链接或安全性问题)相关。打开Application Diagnostics网站,可以查看某个应用的程序错误信息。
      框架/平台
      基于.NET,两款产品对框架/平台上的支持情况如下:
      OneAPM:支持主流
      OneAPM支持所有的.NET语系,包含VB.NET、C#和C++/C LI for .NET 2.0及以上版本。
      OneAPM支持的主要程序框架,包含MVC 2.0、MVC 3.0、MVC 4.0、ASP .NET WebAPI、ASP .NET Web Forms和SOAP-based Web Services。
      OneAPM支持的框架为Microsoft .NET Framework 2.0以上版本。
      SCOM:基于Microsoft .NET Framework
      SCOM同样支持所有.NET语系,并支持基于Microsoft .NET Framework的应用程序。支持IIS5/6/7/8。

      结语
      从上述比较来看,我们发现OneAPM似乎更适应本土化用户使用习惯。
      从安装的角度看,OneAPM安装更便捷,并且提供免费版,付费版也比SCOM价格低。
      从性能的角度看,有很多国内的大中型的企业用户都在使用这个产品。
      从核心功能点的角度看,OneAPM与SCOM都有深入诊断应用程序性能的能力,两者都能提供代码级别的应用性能诊断和故障定位,以及详尽的Traces记录和错误诊断,但OneAPM还提供对Database视角分析的性能监测,不仅仅提供Web事务的分析,而且使用上更加直观,简单。对此,SCOM是没有SQL维度的。
      从可用性与性能体验方面的角度看,OneAPM和SCOM都有各自的机制为IT运营做决策分析,但OneAPM拥有面向真实用户体验的性能管理,视图更直观易懂,界面更加人性化。
      注:希望读者和小编一起感受OneAPM,小编也是初学者,文档有写的不妥的地方,欢迎指出,我的邮箱是[email protected],希望大家一起交流进步!

    1 条回复
    KexyBiscuit
        1
    KexyBiscuit  
       2015-04-30 12:16:19 +08:00 via Android
    软文 detected
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3000 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 13:29 PVG 21:29 LAX 05:29 JFK 08:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86