APM for .NET評測系列:OneAPM vs SCOM

OneAPM技術部落格發表於2015-05-12

APM for .NET評測系列:OneAPM vs SCOM

隨著.NET技術的開源和推廣,越來越多的企業選擇使用.NET語言開發業務系統,其效能問題是大家共同面臨的最棘手的問題。 筆者在此向大家分享一款國內還算靠譜的產品OneAPM,來管理業務系統的效能及Http ERROR。並從安裝,效能,功能等幾個方面與SCOM進行一個簡要的對比。

  安裝   OneAPM:一鍵安裝   OneAPM for .NET提供免費版和付費版。免費版開放了響應時間,http error監控等常用功能,一些深度剖析的功能需要付費,不過註冊後可以試用15天。   安裝方面基本上是一鍵安裝,非常簡單,步驟如下:   註冊OneAPM官網賬號   官網下載.NET Agent進行一鍵安裝。   部署.NET應用程式到本地IIS並重啟IIS,即可使用。   另外OneAPM支援的作業系統包含Windows Server 2003、Windows Server 2008、Windows Server 2012、Windows Vista、Windows7。   流程如圖所示:

  官網檢視應用效能情況   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目錄服務的網路上。   流程如圖所示:

  效能   在開啟程式碼級效能監控的同時,對系統自身效能的影響往往是最受關注的問題。   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請求執行緩慢。

  對於需要做深度剖析的Web事務,可以點選詳情,檢視每個元件及方法類的效能。

  我們可以詳盡地看到Trace耗時的時間戳。耗時百分比中將耗時最慢因素進行了紅色標識,可以通過方法跟蹤,輔助程式開發人員或者IT團隊來修復問題。甚至,OneAPM還可以診斷出執行緩慢的SQL語句。很明顯,一條Select語句是關鍵影響因素。  

  SCOM:能夠定位到緩慢的方法類及Sql語句:   Application Diagnostics控制檯是System Center 2012 - Operations Manager中.NET應用程式效能監視的事件管理系統。使用者可以使用Application Diagnostics控制檯監視部署的.NET應用程式是否出現減速、故障和失敗,並且可以確定問題的來源。   在Application Diagnostics控制檯中,可以檢視網站APM效能及應用程式的錯誤,本質就是APM監視網站,提供給應用程式人員來做應用程式的監視。   同OneAPM相似,Application Diagnostics也為兩種事件提供監測:一種與應用程式效能相關,一種與應用程式失敗和錯誤(通常為連結或安全性問題)相關。我們這一小節主要簡述程式效能,有關應用程式的失敗和錯誤將在下文涉及。   如圖所示,開啟Application Diagnostics網站,可以檢視某個應用的APM效能。   選擇其中一個應用後,可以檢視該應用下的其中一個請求,可以檢視到該請求的耗時體驗。SCOM也為使用者提供了請求的堆疊資訊,為運維人員向下挖掘到堆疊。

  通過這些堆疊資訊可以獲取到事件發生的順序,在檢視中還可以看到花費時間的概述以及問題的所在,以及提供了程式碼級別的APM資料。   資料庫監控   OneAPM:緩慢的Sql列表及Sql trace   OneAPM不僅提供程式碼級的Traces,還提供了Database監控,與Web事務監控相似,SQL效能監控為我們提供了不一樣的視角。從圖中我們可以看到左側羅列出的SQL語句,OneAPM為我們診斷出了每一個SQL語句的平均響應時間以及它們的吞吐量。

  點選一條你所關心的資料,就會在右側頁面看到它的詳細情況。   與Web事務對應的Traces相似,我們同樣可以看到某條SQL語句對應的多次慢SQL情況。   點選某一條所關心的SQL情況,就可以看到詳情。OneAPM診斷出該條SQL語句的詳細資訊,包括呼叫該SQL的URL,方法類,執行計劃等。   SCOM:未發現資料庫監控功能   目前,筆者暫沒發現SCOM提供像OneAPM一樣的SQL維度視角的效能監測功能,如果有讀者提出異議,非常歡迎指正。   對於Http ERROR的監控   OneAPM:抓取Http ERROR並抓取Error Trace   OneAPM預設監控非404的Http請求錯誤,通過OneAPM的監測,可以診斷出錯誤資訊的詳情。包括髮生該錯誤的URL,程式碼棧,錯誤發生時間等資訊。如圖所示。

  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,小編也是初學者,文件有寫的不妥的地方,歡迎指出,我的郵箱是corporation2013@163.com,希望大家一起交流進步!

相關文章