搜尋
首頁Javajava教程阿里雲ARMS診斷Java應用卡頓問題實戰

阿里雲ARMS診斷Java應用卡頓問題實戰

Aug 09, 2018 pm 04:55 PM
java效能資料庫紀錄監控

阿里雲ARMS診斷Java應用卡頓問題實戰

別慌,這只是一張貼圖

除了404,最讓網友們心塞的可能就是這張圖了。

歡迎網友們在「阿里巴巴中間件」公眾號後台留言,把你在網路上看到的心塞的事情發給我們,不限於文字、圖片和語音,沒准我們會推一期「互聯網心塞集錦」喔。

根據相關研究顯示:當頁面載入時間從 1 秒到 3 秒,跳出的機會增加了30%左右。 1s到5s的機會增加到90%,如果你的網站需要10s的加載,跳出的機會將會超過120%。 (這裡的120%不是指來10個人,走12個人,是用戶流失增長率的意思)所以,在這個「用戶體驗為王」的時代,應用效能監控已經成為維運管理的重中之重。

一、找出導致 「慢」 的原因。

網站卡頓、頁面載入慢是網路應用程式常見的問題之一,這類問題的排查和解決並不容易,會花費維運人員大量的時間和精力。通常原因有三:

» 應用程式太長,無從下手。

從前端頁面到後台網關,從Web應用伺服器到後台資料庫,任何一個環節的問題都有可能導致請求整體卡頓,到底是前端資源載入過慢?還是資料庫出了問題?還是新發布的服務端程式碼有效能問題?出現問題的原因五花八門。

採用「微服務」架構的應用,連結更加複雜。不同組件可能由不同的團隊、人員分別維護,加劇了問題檢查的難度。

» 日誌不全或品質欠佳,現場缺失。

應用程式日誌無疑是排查線上問題的神器,但出現問題的位置往往無法預期,發生了問題通常會發現日誌資訊不全,因為我們不可能在每一個有可能出現問題的地方列印紀錄.

「慢」的定義偏主觀,「慢」有時候往往也是偶發現象。真正要捕捉到「慢」的那一行程式碼,我們往往需要記錄每一次調用,不放過每一行程式碼,但這樣的做法代價太大。

» 監控不足,出現問題為時已晚。

業務發展快、迭代速度更快,會導致業務系統頻繁修改介面、增加依賴、程式碼品質惡化。如果沒有一個完善的監控體系,能夠對應用的每個介面的效能進行全自動的監控,對出現問題的呼叫進行自動的記錄,等用戶回饋問題再來解決,本身就已經太遲了。

二、如何1 分鐘定位「慢」 問題

業務即時監控服務ARMS(Application Real-Time MonitoringService)是一款阿里雲應用效能管理(APM)類別的全鏈路監控產品。 ARMS提供了針對Java 應用監控和診斷、車聯網即時監控、零售業即時監控、用戶體驗監控等場景下全方位的監控功能,包括前端監控、應用監控和自訂監控等功能,快速建立即時的業務監控能力。

第一步:安裝Java探針(如果您的應用程式託管於EDAS,甚至可以跳過這一步驟 )

• 開通ARMS,並建立應用程式。

• 下載Java探針包並解壓縮。

• 在Java應用程式啟動腳本中增加-javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar-Darms.licenseKey=xxx -Darms.appId=xxx ( appId和licenseKey根據頁面分配的資訊填寫)

• 開啟ARMS頁面,資料開始上報,驗證Java探針安裝成功。

阿里雲ARMS診斷Java應用卡頓問題實戰

第二步:在應用程式概覽中發現「慢」可疑線索

進入ARMS應用拓撲圖。在應用程式概覽中我們能夠明顯地看到今天系統中有「慢SQL」5次。

阿里雲ARMS診斷Java應用卡頓問題實戰

第三步:瀏覽並發現「慢介面」

點擊介面列表,我們能夠一眼看到這個應用程式提供的所有介面以及這個介面的呼叫次數和耗時,當然,這些介面都是ARMS的探針自動在程式中發現的,無需做任何配置。

在這些介面中,「慢」介面會被明顯標示出來。我們很明顯地發現了可疑的慢接口。

選取左側的呼叫次數最多的」慢」接口,我們可以從右側看到這次呼叫明顯是「慢」在資料庫的呼叫上。

阿里雲ARMS診斷Java應用卡頓問題實戰

第四步:到底「慢在哪一行程式碼」? 一鍵定位原因!

• 光看到介面的耗時還不夠,我們需要精確定位「慢」到底出現在哪一行程式碼。

• 點擊“介面快照”,可以看到這個介面對應的所有介面的快照,快照是對一次呼叫的全鏈路呼叫的完整記錄。 ARMS探針將以非常小的效能損耗記錄每個呼叫所經過的程式碼及耗時,幫助您精確定位「慢」問題。

阿里雲ARMS診斷Java應用卡頓問題實戰

• 我們點選某一個呼叫快照的TraceId,展開即可查看到這次呼叫具體「慢」在哪一行。從上圖我們可以清楚地看到,在這次耗時705毫秒的呼叫中,大部分的時間都消耗在了"SELECT * FROMl_employee"這次SQL呼叫中,這明顯是一次全表掃描的操作!

• 至止,我們已經明確地發現了系統中的一個慢調用的錯誤根因。並且有充分的依據來指導我們下一步的程式碼最佳化工作。我們還可以回到調用接口列表,再逐一打開列表中其他“慢”的調用,逐一解決,相信在ARMS的幫助下,您的網站從此可以遠離卡頓的困擾,給用戶提供更加流暢的體驗。

第五步:防患於未然-- 設定告警

#當然,您可以在ARMS的告警設定中對某一個介面或全部介面設定告警,讓頁面介面出現卡頓時第一時刻通知到您的維運團隊。

阿里雲ARMS診斷Java應用卡頓問題實戰

三、還有哪些網站體驗問題?

當然除了網站卡頓、頁面載入慢以外,網站還會出現後台報錯、頁面載入失敗、記憶體洩漏等一系列問題。如何利用ARMS快速解決更多網站疑難雜症,請關注我們的 ARMS 系列文章 - 「網站常見問題1分鐘定位」。

相關推薦:

mysql-阿里雲-RDS-MySQL-5.5運算問題

自從用了七牛雲端的Robots後,百度無法抓取。診斷顯示robots禁止。請問哪裡出了問題?

以上是阿里雲ARMS診斷Java應用卡頓問題實戰的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?Mar 17, 2025 pm 05:46 PM

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?Mar 17, 2025 pm 05:44 PM

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?Mar 17, 2025 pm 05:43 PM

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Mar 17, 2025 pm 05:35 PM

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)