㈠ 利用Windows自帶的性能監視器對WebService服務進行監控,通常使用哪些計數器,標准值是什麼
1. 處理器對象(Processor Object)
2. 系統對象(System Object)
3. SQL Server:緩沖區管理器對象( B u ffer Manager Object)
4. SQL Server:資料庫對象(Database Object)
5. SQL Server:常規統計對象(General Statistics Object)
6. SQL Server:閂對象(Latches Object)
7. SQL Server:鎖對象(Locks Object)
8. SQL Server:內存管理器對象(Memory Manager Object)
9. SQL Server:S Q L統計對象(SQL Statistics Object)
10. 邏輯磁碟對象(Logical Disk Object)
11. 物理磁碟對象(PhysicalDisk Object)
12. 內存
一條經驗規則是不要使你所監控的每個處理器的C P U使用率高於9 0%。峰值超過9 0%是可以接受的,但平均使用率超過9 0%則是應該避免的。
• 處理器時間百分比(%Processor Time) 處理器執行一個非空閑線程的時間百分比。用%1 0 0減去處理器空閑的總時間得出這個值。這是整個系統的C P U使用的一個好的指示器。
• 特權時間百分比(%Privileged Time) 處理器用於在特權模式下(即,執行操作系統功能和運行驅動器,如I / O )工作時間的百分比。這個時間包括C P U (或C P U )用於維護中斷和延遲過程調用( D P C )的時間。
• 用戶時間百分比(%User Time) 處理器用於在用戶模式工作的時間百分比。這種類型的工作是由應用產生的。通常,希望極大化用戶時間百分比的值,極小化特權時間百分比的值。
• 中斷時間百分比(%Interrupt Time) CPU忙於維護硬體中斷的時間百分比。系統中的許多硬體部件,如滑鼠、網路介面卡或磁碟控制器,都可以發出處理器中斷。你可以將中斷看作為Windows NT正常操作的一部分發生。
• 中斷數/秒(Interrupts/sec) 處理器每秒接收並處理的硬體中斷的數量。它不包括系統
D P C,系統D P C單獨計數。
系統對象與它的相關計數器衡量處理器上運行的線程的總計數據。雖然使用這些計數器不能觀察一個特定處理器的工作負載或一個特定線程的行為,但它們提供了有關整個系統性能有價值的內部信息。系統計數器如下所示:
• 處理器隊列長度(Processor Queue Length) 處理器隊列中的線程的數量。換句話說,它
是等待運行的線程數。即使你的系統具有多個處理器,但只有一個隊列用於處理器時間。計數器只記錄那些准備執行但仍處於等待的線程,不是那些正在運行的線程。
• 環境切換/秒(Context Switches/sec) 系統上的所有處理器從一個線程切換到另一個線程的組合比率。當一個正在運行的線程自動地放棄處理器,處理器由一個高優先順序的待命線程搶占時發生環境切換,或在用戶模式和特權(核心)模式之間切換,以使用一個執行或子系統的服務。這是線程的總和:計算機上運行在所有處理器上的所有線程的環境切換數/秒。
緩沖區管理器計數器提供了SQL Server使用的內存緩沖區的有關信息。這些計數器如下所示:
• 高速緩存命中率( B u ffer Cache Hit Ratio) 引用當前位於高速緩存中頁的需求的百分率。預先在內存中擁有頁,允許SQL Server避免請求從磁碟子系統執行一次物理I / O。因為訪問內存相對於訪問物理I / O,代價更小,一個高的緩沖區高速緩存命中率增強了系統的性能與吞吐量。如果你的系統很好地調整過,這個命中率應該是8 0%或更高。如果具有一個低的緩沖區高速緩存命中率,你應該為SQL Server分配更多的內存。如果你已將現有的所有內存都分配給了SQL Server,那麼需要增加系統中物理內存的數量。
• 高速緩存大小(頁)(Cache Size) 在SQL Server緩沖區高速緩存中的頁的數量。這個數量乘以8 K B,即可得到正在使用的以千位元組為單位的緩存數。
• 空閑緩沖區(Free Buffer) 空閑SQL Server內存緩沖區的數量。
• 讀的頁/秒(Page Reads/sec) 每秒請求的物理數據頁I / O的數量。
• 偷取的頁計數(Stolen Page Count) SQL Server用於緩沖區高速緩存的頁數,這些內存被給予系統中的另外一個進程。Windows NT回收這個內存以滿足其他系統部件的需要。
• 寫的頁/秒(Page Writes/sec) 由SQL Server執行的每秒寫的物理數據頁的數量。
資料庫對象計數器提供了有關SQL Server資料庫的信息,包括可用的空閑日誌空間量和資料庫中活動事務的數量。對於系統中的每個資料庫的每個計數器有一個實例。這些計數器包括如下:
• 日誌刷新等待/秒(Log Flush Wait/sec) 在能夠繼續執行前,必須等待日誌刷新的資料庫提交數量。
• 日誌使用的百分比(Percent Log Used) SQL Server實際使用的當前定義的日誌空間的百分比。
常規統計對象含有常規伺服器范圍活動的有關信息,它有一個計數器:
• 用戶連接數(User Connections) 系統中用戶連接的當前數量。
這個對象計數器提供了在內部SQL Server資源中有效的閂的信息。計數器如下:
• 平均閂等待時間(毫秒) ( Average Latch Wait Time) 閂請求在得到服務之前必須等待的平均時間,以毫秒為單位。
• 閂等待數/秒(Latch Waits/sec) 不能立即服務,被迫等待其他資源釋放的閂請求的數量。
鎖對象提供了由SQL Server提出的各個鎖請求的有關數據,例如鎖生命周期和死鎖。可以在系統上具有多個這些計數器的實例。計數器如下所示:
• 平均等待時間(毫秒) ( Average Wait Time) 每個鎖請求被迫等待的平均時間量,以毫秒為單位。
• 鎖到期數/秒(Lock Timeouts/sec) 在系統中過期的鎖請求的數量。
• 鎖等待數/秒(Lock Wa i t s / s e c )不能立即滿足,需要調用線程在給予鎖之前處於等待狀態的鎖請求的數量。
• 死鎖數/秒(Number of Deadlocks/sec) 導致產生死鎖的鎖請求的數量。
內存管理器對象含有有關SQL Server內存使用的信息,包括SQL Server正在使用的高速緩
存內存的數量。這個對象下的計數器如下所示:
• 內存授權掛起(Memory Grants Pending) 等待授予工作空間內存的進程的當前數量。
• S Q L高速緩存內存(KB)(SQL Cache Memory) SQL Server用於動態SQL 高速緩存的動態
內存數量。
• 目標伺服器內存( K B ) ( Ta rget Server Memory) SQL Server將會消耗的動態內存的總額。
• 總的伺服器內存( K B ) ( Total Server Memory) SQL Server當前消耗的動態內存的總額。
這個對象提供了系統上正在執行的S Q L查詢的有關信息,包括查詢編譯和重新編譯的數量的數據。它有如下計數器:
• 批請求/秒(Batch Requests/sec) 伺服器接收到的S Q L批請求的數量。
• SQL 編譯/秒(SQL Compilations/sec) SQL Server每秒執行的S Q L語句編譯的數量。
• S Q L重新編譯/秒(SQL Re-Compilations/sec) SQL Server每秒執行的S Q L語句重新編譯的數量。
邏輯磁碟對象提供了有關邏輯磁碟I / O性能的信息。邏輯磁碟計數器與Windows NT磁碟
系統管理員分配給邏輯磁碟驅動器的字母相關。這個對象含有如下計數器:
• 磁碟讀時間百分比(%Disk Read Time) 選中的邏輯磁碟忙於服務讀請求總共用去時間的
百分比。
• 磁碟寫時間百分比(%Disk Write Time) 選中的邏輯磁碟忙於服務寫請求總共用去時間
的百分比。
• 磁碟時間百分比(%Disk Time) 選中的邏輯磁碟忙於服務讀請求或寫請求總共用的時間
的百分比,是磁碟寫時間百分比與磁碟讀時間百分比的和。
• 空閑時間百分比(%Idle Time) 邏輯磁碟在采樣時間間隔中處於空閑狀態的時間百分比。
• 平均磁碟隊列長度( Avg. Disk Queue Length) 在采樣的時間間隔中,選中的邏輯磁碟讀請求和寫請求排隊的平均數量。
• 平均磁碟讀隊列長度( Avg. Disk Read Queue Length) 在采樣的時間間隔中,對選中的邏輯磁碟讀請求排隊的平均數量。
• 平均磁碟寫隊列長度( Avg. Disk Write Queue Length) 在采樣的時間間隔中,對選中的邏輯磁碟寫請求排隊的平均數量。
• 平均磁碟秒數/讀( Avg. Disk sec/Read) 從邏輯磁碟讀數據的平均時間,以秒為單位。
• 平均磁碟秒數/寫( Avg. Disk sec/Write) 向邏輯磁碟寫數據的平均時間,以秒為單位。
• 平均磁碟秒數/傳輸( ( Avg. Disk sec/Transfer) 從邏輯磁碟進行傳輸的平均時間,以秒為單位。
• 磁碟讀/秒(Disk Reads Bytes/sec) 邏輯磁碟上每秒讀位元組。
• 磁碟讀/秒(Disk Writes Bytes/sec) 邏輯磁碟上每秒寫位元組。
• 磁碟讀/秒(Disk Reads/sec) 邏輯磁碟上的讀操作比率。
• 磁碟寫/秒(Disk Writes/sec) 邏輯磁碟上的寫操作比率。
• 磁碟傳輸/秒(Disk Transfers/sec) 邏輯磁碟上的讀和寫操作的比率。
物理磁碟對象提供了有關物理磁碟I / O性能的信息。它的磁碟計數器與系統中的物理驅動器有關,並且只有當運行了D i s k P e r f服務時,它才被激活。這個對象下的計數器如下所示:
• 磁碟讀時間百分比(%Disk Read Time) 選中的物理磁碟忙於服務讀請求總共用的時間的百分比。
• 磁碟寫時間百分比(%Disk Write Time) 選中的物理磁碟忙於服務寫請求總共用的時間的百分比。
• 磁碟時間百分比(%Disk Time) 選中的物理磁碟忙於服務讀請求或寫請求總共用的時間的百分比,是磁碟寫時間百分比與磁碟讀時間百分比的和。
• 空閑時間百分比(%Idle Time) 物理磁碟在采樣時間間隔中處於空閑狀態的時間百分比。
• 平均磁碟隊列長度( Avg. Disk Queue Length) 在采樣的時間間隔中,選中的物理磁碟讀請求和寫請求排隊的平均數量。
• 平均磁碟讀隊列長度( Avg. Disk Read Queue Length) 在采樣的時間間隔中,選中的物理磁碟讀請求排隊的平均數量。
• 平均磁碟寫隊列長度( Avg. Disk Write Queue Length) 在采樣的時間間隔中,選中的物理磁碟寫請求排隊的平均數量。
• 平均磁碟秒數/讀( Avg. Disk sec/Read) 從物理磁碟讀數據的平均時間,以秒為單位。
• 平均磁碟秒數/寫( Avg. Disk sec/Write) 向物理磁碟寫數據的平均時間,以秒為單位。
• 平均磁碟秒數/傳輸( Avg. Disk sec/Transfer) 從物理磁碟進行傳輸的平均時間,以秒為單位。
• 磁碟讀/秒(Disk Reads Bytes/sec) 物理磁碟上每秒讀位元組。
• 磁碟讀/秒(Disk Writes Bytes/sec) 物理磁碟上每秒寫位元組。
• 磁碟讀/秒(Disk Reads/sec) 物理磁碟上的讀操作比率。
• 磁碟寫/秒(Disk Writes/sec) 物理磁碟上的寫操作比率。
• 磁碟傳輸/秒(Disk Transfers/sec) 物理磁碟上的讀和寫操作的比率。
內存在任何系統中都是一個非常有價值的資源。Windows NT不只允許過量使用內存,而且鼓勵你過量使用內存。Windows NT提供了一種透明機制,允許應用「相信」它們具有比系統中可用的物理內存更多的內存。當Windows NT處理應用時,它將不使用的內存頁調出(交換出)到磁碟上的頁文件中。在大多數系統中,頁調度是正常的,但過量的頁調度會削弱整個系統的性能。下面的計數器允許你監控系統的頁調度。
• 失效的頁/秒(Page Faults/sec) 每秒由處理器處理的失效頁的全部數量。當一個進程需
要的代碼或數據不在它的工作區(它的空間在物理內存中)中時,發生失效頁。這個計數
器包括硬的頁失效(那些需要磁碟訪問的)和軟的頁失效(在物理內存的其他地方發現了失
效頁)。
• 讀的頁/秒(Page Reads/sec) 讀取磁碟以解決硬的頁失效所需要的時間數(當一個進程需要的代碼或數據不在其工作區或內存中的其他地方,必須從磁碟提取這些代碼和數據時,發生硬的頁失效)。這個計數器包括為滿足在文件系統高速緩存(通常是應用請求的)以及在非高速緩存映像內存文件中的失效而進行的讀。
• 寫的頁/秒(Page Writes/sec) 將頁寫向磁碟以釋放物理內存空間的時間數。只有當頁在物理內存中被改變的時候,將頁寫入磁碟,這樣,它們更有可能含有數據,而不是代碼。
• 頁/秒(Pages/sec) 為解決硬的頁失效,所需要讀或寫磁碟的時間數。它是讀的頁/秒與寫的頁/秒的計數器的和。
㈡ 如何通過WebView監控提升WebAPP性能
WebAPP所顯示的Web頁面都是由一個叫做WebView的組件渲染出來的,每個網頁都有一個鏈接即URL,首先將URL轉換成NSURLRequest,然後用載入網頁的類WebView載入Request,使用 - (void)loadRequest:(NSURLRequest *)request這個方法,就能將網頁載入顯示出來。
目前iOS中有兩個載入網頁的類,分別是UIWebView和WKWebView,UIWebView是UIKit框架中的一個類,而WKWebView是WebKit框架中的類,從性能上來說WKWebView的性能高、穩定性好、佔用內存小,完全優於UIWebView。但由於WKWebView是iOS8提供的組件,因此系統版本低於iOS 8.0的iPhone/iPad用戶就無法正常使用WKWebView組件開發出來的APP。所以目前大部分開發人員還在使用性能、穩定性並不理想的UIWebView進行WebAPP開發,而本文所說的雲智慧透視寶WebView性能監控也是以UIWebView為主要優化目標。
要進行性能監控必須獲得WebAPP頁面載入全過程的性能數據,透視寶是通過向當前載入鏈接的html5、jsp、php網頁代碼中注入獲取數據的JS代碼,然後通過OC與JS交互,將數據傳遞給OC,然後再將數據整理發送到透視寶後端。
監控哪些WebView性能數據
透視寶能監控四大類數據:
♦ 行為數據:抓取用戶在移動端網頁點的行為操作,也就是點擊網頁的內容,分析用戶的行為
♦時間相應數據:分解一個鏈接從載入開始到完成這段時間內,每個階段的耗時
♦ Ajax請求數據:抓取終端用戶響應時間,響應數據下載時間,數據響應成功的callback執行時間和ajax錯誤數據
♦ JS錯誤數據:抓取載入鏈接的代碼錯誤信息
㈢ 你是如何搭建 Web 前端性能監控系統的
gulp.js
官方有api
㈣ 如何用java實現web伺服器的監控
Hyperic HQ集成了強大的監測和管理功能,它有開源版本,您可以直接使用它用來對web伺服器進行監控。
如果您想自己寫代碼實現,Hyperic HQ提供了一個伺服器各種性能指標採集的API,這個API包本身提供了各種平台(linux/MAC/window等)的兼容。
㈤ 有什麼好用的基於Web的Linux系統監控開源工具
可以用一些命令來實現你說的功能的。
請看下文,請採納。謝謝。
一、基於命令行的性能監控工具
1.dstat - 多類型資源統計工具
該命令整合了vmstat,iostat和ifstat三種命令。同時增加了新的特性和功能可以讓你能及時看到各種的資源使用情況,從而能夠使你對比和整合不同的資源使用情況。通過不同顏色和區塊布局的界面幫助你能夠更加清晰容易的獲取信息。它也支持將信息數據導出到cvs格式文件中,從而用其他應用程序打開,或者導入到資料庫中
2.atop - 相比top更好的ASCII碼體驗
這個使用ASCII碼顯示方式的命令行工具是一個顯示所有進程活動的性能監控工具。它可以展示每日的系統日誌以進行長期的進程活動分析,並高亮顯示過載的系統使用資源。它包含了CPU,內存,交換空間,磁碟和網路層的度量指標。所有這些功能只需在終端運行atop即可。
3.Nmon - 類Unix系統的性能監控
Nmon是Nigel's Monitor縮寫,它最早開發用來作為AIX的系統監控工具。如果使用在線模式,可以使用游標鍵在屏幕上操作實時顯示在終端上的監控信息。使用捕捉模式能夠將數據保存為CSV格式,方便進一步的處理和圖形化展示。
4.slabtop - 顯示內核slab緩存信息
這個應用能夠顯示緩存分配器是如何管理Linux內核中緩存的不同類型的對象。這個命令類似於top命令,區別是它的重點是實時顯示內核slab緩存信息。它能夠顯示按照不同排序條件來排序顯示緩存列表。它同時也能夠顯示一個slab層信息的統計信息的題頭。
5.sar - 性能監控和瓶頸檢查
sar 命令可以將操作系統上所選的累積活動計數器內容信息輸出到標准輸出上。其基於計數值和時間間隔參數的審計系統,會按照指定的時間間隔輸出指定次數的監控信息。如果時間間隔參數為設置為0,那麼sar命令將會顯示系統從開機到當時時刻的平均統計信息。有用的命令如下:
# sar -u 2 3
# sar -u -f /var/log/sa/sa05
# sar -P ALL 1 1
# sar -r 1 3
# sar -W 1 3
6.Saidar - 簡單的統計監控工具
Saidar是一個簡單且輕量的系統信息監控工具。雖然它無法提供大多性能報表,但是它能夠通過一個簡單明了的方式顯示最有用的系統運行狀況數據。你可以很容易地看到運行時間、平均負載、CPU、內存、進程、磁碟和網路介面統計信息。
Usage: saidar [-d delay] [-c] [-v] [-h]
-d 設置更新時間(秒)
-c 彩色顯示
-v 顯示版本號
-h 顯示本幫助
7.top - 經典的Linux任務管理工具
作為一個廣為人知的Linux工具,top是大多數的類Unix操作系統任務管理器。它可以顯示當前正在運行的進程的列表,用戶可以按照不同的條件對該列表進行排序。它主要顯示了系統進程對CPU和內存的使用狀況。top可以快速檢查是哪個或哪幾個進程掛起了你的系統
8.Sysdig - 系統進程的高級視圖
Sysdig是一個能夠讓系統管理員和開發人員以前所未有方式洞察其系統行為的監控工具。其開發團隊希望改善系統級的監控方式,通過提供關於存儲,進程,網路和內存子系統的統一有序以及粒度可見的方式來進行錯誤排查,並可以創建系統活動記錄文件以便你可以在任何時間輕松分析。
㈥ 網路監控平台哪家好
合力天下IT運維平台是北京合力天下信息技術有限公司自主研發的國內領先軟體產品,是國家科技部創新基金項目,在全國數百個大型政府機構、大學、企業集團得到成功應用。
合力天下IT運維平台以立體化、系統化、集成化的管理視點為支撐,強調精細化管理與執行管控能力,統合集成地展現並交互管理IT架構的設備運行、網路性能及流量控制、協議分析、用戶管控、業務應用監測、伺服器資源監測、PC終端實時控制、安全控制、身份認證、上網行為管理。
不同的網路設備、主機設備和業務系統具有不同的管理手段和方法,需要管理者對不同的系統的了解和具備專業知識,而集中統一的、圖形化、智能化、立體化、系統化的管理系統可以幫助減輕管理者的工作,提高運維效率和響應速度,正如合力天下IT運維平台的技術突破所引領的這樣:
·強化核心的LINUX操作系統作為運行平台,系統非常堅固,零客戶端部署
·基於J2EE的分布式計算環境,極大保護伺服器性能
·WEB界面,網路拓撲拖拽自如、基於圖形的管控操作,管理隨處可達
·支持合力天下通用演算法、CISCOCDP演算法、華為NDP演算法,並能綜合應用
·以極高效率進行拓撲自動計算和自動繪制,拓撲自動排列
·完備的故障管理、性能管理、配置管理
·全計算環境分層式可視化管理、全息用戶信息實時監察和歷史數據
·支持各廠家多種類的網路設備
·面向計算機網路終端的管理甚至可以發現和控制非網管設備下的PC
·對跨地域的廣域網路集中控制和管理
·流量與協議分析
·帶寬與流量控制
·強大的網路病毒預防與遏制能力,保證主幹網路的健康運行
·對網路內染毒計算機的網路DDOS攻擊、蠕蟲病毒等異常流量及其變種自動採取應對策略
·ARP病毒控制
·優秀的上網行為控制,可按多種策略定製控制方法
·控制策略預先設定與自動實施
·IP-MAC全網自動掃描綁定
·網路帶寬分配和鏈路聚合、負載均衡
·網路運行質量控制的有效工具
·保證網路連續可靠安全可控制地工作
·網路設備配置管理分發
·支持廣域網路由、Trunk接入、NAT
·可以直路部署,對主幹流量與協議進行有效控制與整形,也可以旁路部署,對全網進行有效監測和管理
·支持Portal認證和802.1x認證
拓撲自動發現與管理
·J2EE分布式計算,分布式計算,極大保護網管伺服器性能,管理操作隨處可達。
·全網自動掃描發現,合力天下IT運維平台完全自動掃描發現並繪制J2EEWEB界面的拓撲圖。
·邏輯與物理拓撲圖雙模,便於故障查找、設備定位、流量分析
·支持CISCOCDP、華為NDP等私有拓撲演算法及合力天下拓撲演算法,拓撲圖發現高度精準,發現效率無與匹敵。
·可編輯的WEB拓撲圖,可對圖形縮放、拖拽、編輯,採用氣泡技術,對全部網元即指即查。
·面向用戶的圖形管理,拓撲圖可自動發現包括用戶計算機在內的全部網路交換設備、路由器、伺服器、鏈路、防火牆IDS設備、可網管UPS……等等。對PC機的當前連網狀態及當前上網訪問信息可進行實時檢測。
·交互的拓撲圖操控模式,合力天下IT運維平台的J2EE拓撲圖形完全提供互動式的操作與控制管理,可點擊任一網元對其流量、協議、埠、網路服務、設備性能、鏈路性能等等進行實時監測,對可以網管的設備進行控制與管理。
·自動定位PC與交換機的連接埠關系,拓撲圖的自動發現包括能夠自動定位PC與交換機的埠連接關系,可以結合合力天下IT運維平台的用戶管理功能,按用戶名進行上網行為的網路通斷、流量、帶寬、網路協議及服務的控制。
·分層管理、自動排列,可對網路管理人員按組織機構分配網路管理域,可供選擇的「自動排列」功能,可在瞬間自動排列出美觀有序的拓撲圖形
日誌管理
·記錄網內用戶訪問日誌,包括源IP地址、目的IP地址、目的埠、協議、包數量、訪問時間等信息。
認證管理
·支持多種認證組合應用模式:
·LAN認證,指的是不安裝任何客戶端軟體,不改變客戶任何操作習慣,而由系統對全網任意客戶機連機時自動綁定分配IP-MAC通道。從而達到規范管理IP地址的目的。
·802.1x認證,IEEE802.1x是一種基於埠的網路接入控制技術,在LAN設備的物理接入級對接入設備進行認證和控制,此處的物理接入級指的是LanSwitch設備的埠。連接在該類埠上的用戶設備如果能通過認證,就可以訪問LAN內的資源;如果不能通過認證,則無法訪問LAN內的資源,相當於物理上斷開連接。
·Portal認證,伺服器端運行合力天下Portal服務,用戶在第一次打開瀏覽器端輸入任何URL地址後即強行重定向到認證Portal,通過認證後自動轉至此前輸入的URL地址。
㈦ 如何通過WebView監控提升WebAPP性能
相對於需要專業移動開發人員的原生應用(Native APP),基於HTML5/CSS/JavaScript的WebAPP憑借開發者門檻低、迭代迅速、支持跨平台發布等特點,成為電商、銀行等網路服務、瀏覽類應用的首選,然而由於頁面渲染導致的性能差距是WebAPP與原生應用無法抗衡的最大原因,因此針對WebView組件的性能優化就顯得至關重要。
為什麼是WebView
WebAPP所顯示的Web頁面都是由一個叫做WebView的組件渲染出來的,每個網頁都有一個鏈接即URL,首先將URL轉換成NSURLRequest,然後用載入網頁的類WebView載入Request,使用 - (void)loadRequest:(NSURLRequest *)request這個方法,就能將網頁載入顯示出來。
目前iOS中有兩個載入網頁的類,分別是UIWebView和WKWebView,UIWebView是UIKit框架中的一個類,而WKWebView是WebKit框架中的類,從性能上來說WKWebView的性能高、穩定性好、佔用內存小,完全優於UIWebView。但由於WKWebView是iOS8提供的組件,因此系統版本低於iOS 8.0的iPhone/iPad用戶就無法正常使用WKWebView組件開發出來的APP。所以目前大部分開發人員還在使用性能、穩定性並不理想的UIWebView進行WebAPP開發,而本文所說的雲智慧透視寶WebView性能監控也是以UIWebView為主要優化目標。
要進行性能監控必須獲得WebAPP頁面載入全過程的性能數據,透視寶是通過向當前載入鏈接的html5、jsp、php網頁代碼中注入獲取數據的JS代碼,然後通過OC與JS交互,將數據傳遞給OC,然後再將數據整理發送到透視寶後端。
監控哪些WebView性能數據
透視寶能監控四大類數據:
行為數據:抓取用戶在移動端網頁點的行為操作,也就是點擊網頁的內容,分析用戶的行為
時間相應數據:分解一個鏈接從載入開始到完成這段時間內,每個階段的耗時
Ajax請求數據:抓取終端用戶響應時間,響應數據下載時間,數據響應成功的callback執行時間和ajax錯誤數據
JS錯誤數據:抓取載入鏈接的代碼錯誤信息
① 時間響應數據及數據計算公式
(圖片來源:51cto技術博客)
參見上圖,JS傳給透視寶的時間響應數據就是這些欄位,其中navigationStart是起點,所有的計算都需要依賴於它。分析移動端H5性能數據,其實就是測算HTML5、JSP、PHP等網頁元素在iOS上載入的時間長短,通過這些性能數據前段開發人員能夠准確發現性能問題並及時解決,下表是透視寶定義的響應時間分解數據及計算方案:
② 資源時序數據
每一個網頁都是有很多資源組成的,包括.js、.png、.jpg、.css、script等,每一個元素的載入都需要載入時間,資源時序數據就是准確記錄每一個元素的載入時間及類型,並把這些數據通過JS的performance介面直接獲得並傳給OC,不需要計算。
③ JS錯誤及ajax請求數據
JS錯誤指的是抓取網頁代碼的錯誤,包括錯誤類型及堆棧信息,直接定位錯誤。ajax請求的數據有請求的鏈接、uri、 終端用戶響應時間,響應數據下載時間,數據響應成功的callback執行時間和ajax錯誤數據。JS錯誤和ajax請求數據都是有JS代碼直接獲取到,不需要處理。
JS代碼注入
想要准確監測網頁性能就需要進行代碼注入,而只有拿到網頁的代碼才能注入, UIWebView這個類裡面除了三個載入鏈接的方法和4個代理方法,就沒有其他內容了,而這些方法並不能獲取到內容,所以我們就需要考慮其他方法。UIWebView在載入攔截的時候會進入NSURLProtocol這個類,而恰好這個類能拿到當前載入鏈接NSURLRequest,而且會走進這個類的 - (void)startLoading方法,這個方法在頁面load完成之前,頁面剛載入之後,所以就是我們所需要的。
創建一個類,繼承NSURLProtocol這個類,重寫startLoading方法,由於能拿到鏈接的request,所以我們就對這個鏈接發送請求,用原生態的NSURLConnection或者NSURLSession都可以,我們用的NSURLConnection這個類發送請求並設置代理,方法是這個 - (nullableinstancetype)initWithRequest:(NSURLRequest*)request delegate:(nullableid)delegate startImmediately:(BOOL)startImmediately,
NSURLConnection的代理方法中有一個能接受請求鏈接數據的方法, - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data,得到的NSData是16進制的位元組流數據,通過utf8轉碼將位元組流轉換成字元串,然後發現這個字元串正好是這個當前載入網頁的代碼,
網頁代碼都是由標簽組成,都會有<head>這個標簽,我們就把JS代碼注入到<head>標簽之下,放在自己添加的<script>標簽中;代碼實現就是獲取字元串中<head>這個字元的位置,然後在其下面插入用<script>包裝的js代碼,然後轉回成新的NSData的位元組流數據。
由於頁面還沒有載入,我們已經改動代碼了,就需要把注入JS代碼的重新記載一次,需要用NSURLProtocol的代理屬性NSURLProtocolClient,用NSURLProtocolClient這個中的這個方法- (void)URLProtocol:(NSURLProtocol*)protocol didLoadData:(NSData*)data,將新的NSData載入一次,轉回成NSData是因為這個方法需要的是NSData數據。
當然上面只是介紹主要實現的一些方法,還需要用到NSURLConnection的其他代理方法,只是這些方法不需要添加什麼,按照常規處理就行了,就不一一介紹了。
性能數據獲取
載入鏈接過程中JS代碼就會通過performance介面獲取數據,然後獲取的這些數據需要傳給移動端,如何傳遞數據呢,傳遞數據的過程也叫OC與JS交互的過程。
獲取數據的時機:
由於不清楚什麼時候JS能拿到數據,所以從最開始就需要進行交互的監控,也就是載入鏈接的時候,因為透視寶SDK用來監控的所以我們不能直接使用這個方法,需要用到OC的運行時,動態載入機制,又叫hook。首先通過添加UIWebView的類目,添加類目是將UIWebView類的實現分散出來,每個類都是由NSbject繼承下去,所以每個類都有 (void)load方法,而且這個方法的執行是最早的,我們就在這個方法中使用OC的運行時runtime,使用一個方法交換UIWebView載入鏈接的三個方法的指針,這樣就會在執行載入方法之前執行我們交換出來的方法,在這個方法裡面我們傳遞一個與JS匹配的標識,通過標識相同來獲取數據,這樣做的目的就是能從最開始就監控數據的傳遞。
㈧ 應用性能管理的雲智慧透視寶 應用性能管理
透視寶是雲智慧推出的新一代面向業務基於端到端的應用性能管理(APM)平台,針對移動和Web應用,提供全面的性能監控、分析與管理解決方案。透視寶包括移動(Mobile)、瀏覽器(Browser)、主機(Host)、應用(Application)四款子產品,能夠幫助企業實現應用性能的最優化、改進與優化終端用戶體驗、加速系統開發及交付進程、規避與減小整體投資風險、提高IT生產效率。
㈨ 主流的開源的網路攝像機搭載的WEB界面軟體有哪幾個
1. 開源網路監控工具: NetXMS
NetXMS 提供了企業級開源網路管理和監控程序,它在Windows和Linux上有一個簡單的用戶界面。
NetXMS通過相對簡單的安裝過程為IT基礎架構的所有層提供了分布式網路監控、自動化網路發現和詳細報告。
此外,伺服器設備和代理對於這樣一個全面的產品來說是相當輕量級的。
2. 開源網路監控工具: Pandora FMS
定位於企業級, Pandora FMS 提供了一個時尚且整潔的用戶體驗,提供了易於閱讀的快速洞察工具以及重要的網路統計信息,例如網路狀態、已上報的告警、已部署的代理數量和其他最近執行任務的列表。
Pandora FMS可以在無需外部訪問的情況下執行網路診斷,這意味著用戶可以更快地響應任何網路問題。事實上,FMS聲稱,在代理模式下的器監控系統響應速度約為10秒。
3. 開源網路監控工具: Cacti
最初發布於2001年, Cacti 是一款開源的基於Web的網路監控和專為數據記錄而設計的圖形化工具。它可以用於實時顯示網路數據,如CPU負載或帶寬利用率。
Cacti是RRDtool的前端應用程序,RRDtool是一種用於存儲實時變化數據的開源資料庫工具,其使用SNMP作為其默認收集演算法,但如果你喜歡本地Perl的PHP腳本,那麼你也可以使用它們。
其最新版本0.8.8h於2016年5月發布,主要功能包括無限圖形項目、圖形自動填充支持、圖形數據處理、自定義數據採集腳本、內置SNMP支持、圖形模板、數據源模板、主機模板和基於用戶的管理。
4. 開源網路監控工具: GroundWork Monitor Core
GroundWork Monitor Core 是監控網路、應用和雲計算使用情況的平台。開源版本包含最多可監控50個設備和基於社區的支持的許可證,該軟體還有其對應的商業版本。
在其網路管理功能方面,GroundWork提供網路和設備的自發現和維護、拓撲、報警控制、通過API/SNMP/IPMI的數據收集和對OpenDaylight SDN的支持等功能。
GroundWork還提供了存儲管理,支持大規模的企業級供應商,如NetApp和EMC,以及從磁碟、塊或對象存儲的數據收集和存儲緩沖以及中斷可視化。
由於GroundWork的一站式網路管理方法,這種套件可能更適合那些尋找成熟品牌的大型商業和企業,而不是以開發人員為重點的工具,如Big Brother或Big Sister。
5. 開源網路監控工具:Hyperic
VMware的 Hyperic 工具用於在物理、虛擬或雲環境下監控Web應用程序及其性能。 它適用於應用程序伺服器,web伺服器,資料庫,操作系統,虛擬機管理程序,消息傳遞服務和目錄伺服器。
Hyperic提供基礎架構和操作系統監控,詳細的報告,應用程序和中間件監控,警報和修復工作流程以及通用可擴展的API。
該網路監控工具提供了企業版本,可以提高網路警報功能,並且能更好地創建基準。
6. 開源網路監控工具: Observium
基於Linux的 Observium 是一個自動監測的網路監控工具。 據該網站介紹,「該工具是由一批經驗豐富的專業網路工程師和系統管理員開發和維護的,Observium是一個由用戶自己設計和構建的平台。」
Observium提供社區版本和專業版,使用RRDTool進行緩沖存儲和圖形化功能,並具有易於使用的用戶界面和報告功能。 但是,它沒有報告導出功能,這可能對商務應用來講會是一個問題。
社區版本將為用戶提供對所有支持設備或指標的完整 自動監測功能, 通過自動發現協議進行網路映射, 自動識別數百種設備,並且每六個月發布一個新版本。
而專業版用戶將獲得所有社區版本的功能並且還將獲得實時軟體更新和修復功能,基於規則的自動分組功能,網路閾值和狀態警報系統以及流量統計系統。
7. 開源網路監控工具: Zabbix
Zabbix 作為企業級的網路監控工具,通過從伺服器,虛擬機和網路設備收集的數據提供實時監控,自動發現,映射和可擴展等功能。
Zabbix的企業級監控軟體為用戶提供內置的Java應用伺服器監控,硬體監控,VMware監控和CPU,內存,網路,磁碟空間性能監控。