隨著.NET技術(shù)的開源和推廣,越來越多的企業(yè)選擇使用.NET語言開發(fā)業(yè)務(wù)系統(tǒng),其性能問題是大家共同面臨的最棘手的問題。
筆者在此向大家分享一款國內(nèi)還算靠譜的產(chǎn)品OneAPM,來管理業(yè)務(wù)系統(tǒng)的性能及Http ERROR。并從安裝,性能,功能等幾個方面與SCOM進行一個簡要的對比。
安裝
OneAPM:一鍵安裝
OneAPM for .NET提供免費版和付費版。免費版開放了響應(yīng)時間,http error監(jiān)控等常用功能,一些深度剖析的功能需要付費,不過注冊后可以試用15天。
安裝方面基本上是一鍵安裝,非常簡單,步驟如下:
注冊O(shè)neAPM官網(wǎng)賬號
官網(wǎng)下載.NET Agent進行一鍵安裝。
部署.NET應(yīng)用程序到本地IIS并重啟IIS,即可使用。
另外OneAPM支持的操作系統(tǒng)包含Windows Server 2003、Windows Server 2008、Windows Server 2012、Windows Vista、Windows7。
流程如圖所示:
官網(wǎng)查看應(yīng)用性能情況
SCOM:對比而言安裝比較復(fù)雜,需要很多先決條件
SCOM屬于System Center產(chǎn)品組件,目前Microsoft不提供免費版使用,需要付費或者在一定的試用期內(nèi)使用。其中標準版和數(shù)據(jù)中心版都包含SCOM組件,價格分別是1,323和3,607。
SCOM的安裝需要一些先決條件,比較繁瑣:
需要開啟服務(wù)器管理器功能,并添加一些角色和功能。
需要安裝System CLR Types for SQL Server 2012。
需要安裝Reporting Viewer 2012。
安裝Operations Manager。
導(dǎo)入Windows Server OS系統(tǒng)管理包。
導(dǎo)入APM對應(yīng)IIS平臺管理包。
導(dǎo)入APM管理包。
建立.NET APM監(jiān)視,并根據(jù)提示重新啟動IIS。
服務(wù)器自動啟動APM監(jiān)視服務(wù),并等待Web應(yīng)用程序數(shù)據(jù)收集。
另外SCOM的Web控制臺和管理服務(wù)器功能需要的操作系統(tǒng)版本是Windows Server 2008 R2 Service Pack 1或更高的版本,并只能安裝在Active Directory目錄服務(wù)的網(wǎng)絡(luò)上。
流程如圖所示:
性能
在開啟代碼級性能監(jiān)控的同時,對系統(tǒng)自身性能的影響往往是最受關(guān)注的問題。
OneAPM:低于3%,有國內(nèi)大型企業(yè)使用的案例
從Oneapm官方給的數(shù)據(jù)來看,這個值是低于3%。即安裝.net探針后,對系統(tǒng)的CPU及內(nèi)存的影響低于3%,一般這個程度的影響對系統(tǒng)來說是能夠被接受的。
從使用案例上來看,積木盒子、藥房網(wǎng),中國移動等一些大中型企業(yè)的生產(chǎn)系統(tǒng)都在用這個產(chǎn)品。
SCOM:未發(fā)現(xiàn)官方性能數(shù)據(jù)及案例
目前Microsoft System Center官方并未給出開啟代碼級監(jiān)控功能后,實際的性能損耗。
從使用案例上來看,目前沒有了解到國內(nèi)中大型企業(yè)在生產(chǎn)系統(tǒng)中使用SCOM的代碼級監(jiān)控的案例。
功能
下文中我將主要從代碼級Trace、SQL以及Error三點常用功能對比OneAPM以及SCOM。
代碼級Trace:能夠定位到緩慢的方法類及Sql語句。
OneAPM
當(dāng)系統(tǒng)發(fā)生錯誤和緩慢時,OneAPM提供了trace功能能夠定位到代碼中緩慢的方法類和Sql預(yù)計。
如圖所示,我們可以看到OneAPM對Web事務(wù)(即一次http請求)的抓取。在左側(cè)頁面中,顯示了Web事務(wù)的列表,用戶可以查看事務(wù)的耗時,定位哪些http請求執(zhí)行緩慢。
對于需要做深度剖析的Web事務(wù),可以點擊詳情,查看每個組件及方法類的性能。
我們可以詳盡地看到Trace耗時的時間戳。耗時百分比中將耗時最慢因素進行了紅色標識,可以通過方法跟蹤,輔助程序開發(fā)人員或者IT團隊來修復(fù)問題。甚至,OneAPM還可以診斷出執(zhí)行緩慢的SQL語句。很明顯,一條Select語句是關(guān)鍵影響因素。
SCOM:能夠定位到緩慢的方法類及Sql語句:
Application Diagnostics控制臺是System Center 2012 - Operations Manager中.NET應(yīng)用程序性能監(jiān)視的事件管理系統(tǒng)。用戶可以使用Application Diagnostics控制臺監(jiān)視部署的.NET應(yīng)用程序是否出現(xiàn)減速、故障和失敗,并且可以確定問題的來源。
在Application Diagnostics控制臺中,可以查看網(wǎng)站APM性能及應(yīng)用程序的錯誤,本質(zhì)就是APM監(jiān)視網(wǎng)站,提供給應(yīng)用程序人員來做應(yīng)用程序的監(jiān)視。
同OneAPM相似,Application Diagnostics也為兩種事件提供監(jiān)測:一種與應(yīng)用程序性能相關(guān),一種與應(yīng)用程序失敗和錯誤(通常為鏈接或安全性問題)相關(guān)。我們這一小節(jié)主要簡述程序性能,有關(guān)應(yīng)用程序的失敗和錯誤將在下文涉及。
如圖所示,打開Application Diagnostics網(wǎng)站,可以查看某個應(yīng)用的APM性能。
選擇其中一個應(yīng)用后,可以查看該應(yīng)用下的其中一個請求,可以查看到該請求的耗時體驗。SCOM也為用戶提供了請求的堆棧信息,為運維人員向下挖掘到堆棧。
通過這些堆棧信息可以獲取到事件發(fā)生的順序,在視圖中還可以看到花費時間的概述以及問題的所在,以及提供了代碼級別的APM數(shù)據(jù)。
數(shù)據(jù)庫監(jiān)控
OneAPM:緩慢的Sql列表及Sql trace
OneAPM不僅提供代碼級的Traces,還提供了Database監(jiān)控,與Web事務(wù)監(jiān)控相似,SQL性能監(jiān)控為我們提供了不一樣的視角。從圖中我們可以看到左側(cè)羅列出的SQL語句,OneAPM為我們診斷出了每一個SQL語句的平均響應(yīng)時間以及它們的吞吐量。
點擊一條你所關(guān)心的數(shù)據(jù),就會在右側(cè)頁面看到它的詳細情況。
與Web事務(wù)對應(yīng)的Traces相似,我們同樣可以看到某條SQL語句對應(yīng)的多次慢SQL情況。
點擊某一條所關(guān)心的SQL情況,就可以看到詳情。OneAPM診斷出該條SQL語句的詳細信息,包括調(diào)用該SQL的URL,方法類,執(zhí)行計劃等。
SCOM:未發(fā)現(xiàn)數(shù)據(jù)庫監(jiān)控功能
目前,筆者暫沒發(fā)現(xiàn)SCOM提供像OneAPM一樣的SQL維度視角的性能監(jiān)測功能,如果有讀者提出異議,非常歡迎指正。
對于Http ERROR的監(jiān)控
OneAPM:抓取Http ERROR并抓取Error Trace
OneAPM默認監(jiān)控非404的Http請求錯誤,通過OneAPM的監(jiān)測,可以診斷出錯誤信息的詳情。包括發(fā)生該錯誤的URL,代碼棧,錯誤發(fā)生時間等信息。如圖所示。
SCOM
上文提到的Application Diagnostics為錯誤事件提供監(jiān)測,一般與應(yīng)用程序失敗和錯誤(通常為鏈接或安全性問題)相關(guān)。打開Application Diagnostics網(wǎng)站,可以查看某個應(yīng)用的程序錯誤信息。
框架/平臺
基于.NET,兩款產(chǎn)品對框架/平臺上的支持情況如下:
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的應(yīng)用程序。支持IIS5/6/7/8。
結(jié)語
從上述比較來看,我們發(fā)現(xiàn)OneAPM似乎更適應(yīng)本土化用戶使用習(xí)慣。
從安裝的角度看,OneAPM安裝更便捷,并且提供免費版,付費版也比SCOM價格低。
從性能的角度看,有很多國內(nèi)的大中型的企業(yè)用戶都在使用這個產(chǎn)品。
從核心功能點的角度看,OneAPM與SCOM都有深入診斷應(yīng)用程序性能的能力,兩者都能提供代碼級別的應(yīng)用性能診斷和故障定位,以及詳盡的Traces記錄和錯誤診斷,但OneAPM還提供對Database視角分析的性能監(jiān)測,不僅僅提供Web事務(wù)的分析,而且使用上更加直觀,簡單。對此,SCOM是沒有SQL維度的。
從可用性與性能體驗方面的角度看,OneAPM和SCOM都有各自的機制為IT運營做決策分析,但OneAPM擁有面向真實用戶體驗的性能管理,視圖更直觀易懂,界面更加人性化。
注:希望讀者和小編一起感受OneAPM,小編也是初學(xué)者,文檔有寫的不妥的地方,歡迎指出,我的郵箱是corporation2013@163.com,希望大家一起交流進步!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。