V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oneapm001
V2EX  ›  .NET

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

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

    随着.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   ·   实用小工具   ·   1047 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:38 · PVG 06:38 · LAX 14:38 · JFK 17:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.