在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

監控系統的建設思路分析

Android編程精選 ? 來源:博客園 ? 作者:博客園 ? 2022-06-22 10:27 ? 次閱讀

一、起始

在實際的性能分析中,一個很常見的現象是,明明發生了性能瓶頸,但當你登錄到服務器中想要排查的時候,卻發現瓶頸已經消失了。或者說,性能問題總是時不時地發生,但卻很難找出發生規律,也很難重現。 而要解決這個問題,就要搭建監控系統,把系統和應用程序的運行狀況監控起來,并定義一系列的策略,在發生問題時第一時間告警通知。一個好的監控系統,不僅可以實時暴露系統的各種問題,更可以根據這些監控到的狀態,自動分析和定位大致的瓶頸來源,從而更精確地把問題匯報給相關團隊處理。要做好監控,最核心的就是全面的、可量化的指標,這包括系統和應用兩個方面。 從系統來說,監控系統要涵蓋系統的整體資源使用情況,比如我們前面講過的 CPU、內存、磁盤和文件系統、網絡等各種系統資源。 而從應用程序來說,監控系統要涵蓋應用程序內部的運行狀態,這既包括進程的 CPU、磁盤 I/O 等整體運行狀況,更需要包括諸如接口調用耗時、執行過程中的錯誤、內部對象的內存使用等應用程序內部的運行狀況。

二、系統監控

1、USE 法

在開始監控系統之前,你肯定最想知道,怎么才能用簡潔的方法,來描述系統資源的使用情況。你當然可以使用專欄中學到的各種性能工具,來分別收集各種資源的使用情況。不過不要忘記,每種資源的性能指標可都有很多,使用過多指標本身耗時耗力不說,也不容易為你建立起系統整體的運行狀況。 在這里,我為你介紹一種專門用于性能監控的 USE(Utilization Saturation and Errors)法。 USE 法把系統資源的性能指標,簡化成了三個類別,即使用率、飽和度以及錯誤數。

使用率,表示資源用于服務的時間或容量百分比。100% 的使用率,表示容量已經用盡或者全部時間都用于服務。

飽和度,表示資源的繁忙程度,通常與等待隊列的長度相關。100% 的飽和度,表示資源無法接受更多的請求。

錯誤數表示發生錯誤的事件個數。錯誤數越多,表明系統的問題越嚴重。

這三個類別的指標,涵蓋了系統資源的常見性能瓶頸,所以常被用來快速定位系統資源的性能瓶頸。這樣,無論是對 CPU、內存、磁盤和文件系統、網絡等硬件資源,還是對文件描述符數、連接數、連接跟蹤數等軟件資源,USE 方法都可以幫你快速定位出,是哪一種系統資源出現了性能瓶頸。

2、性能指標

那么,對于每一種系統資源,又有哪些常見的性能指標呢?回憶一下我們講過的各種系統資源原理,并不難想到相關的性能指標。這里,我把常見的性能指標畫了一張表格,方便你在需要時查看。

7a582e44-f158-11ec-ba43-dac502259ad0.png

不過,需要注意的是,USE 方法只關注能體現系統資源性能瓶頸的核心指標,但這并不是說其他指標不重要。諸如系統日志、進程資源使用量、緩存使用量等其他各類指標,也都需要我們監控起來。只不過,它們通常用作輔助性能分析,而 USE 方法的指標,則直接表明了系統的資源瓶頸。

3、監控系統

掌握 USE 方法以及需要監控的性能指標后,接下來要做的,就是建立監控系統,把這些指標保存下來;然后,根據這些監控到的狀態,自動分析和定位大致的瓶頸來源;最后,再通過告警系統,把問題及時匯報給相關團隊處理。 可以看出,一個完整的監控系統通常由數據采集、數據存儲、數據查詢和處理、告警以及可視化展示等多個模塊組成。所以,要從頭搭建一個監控系統,其實也是一個很大的系統工程。 不過,幸運的是,現在已經有很多開源的監控工具可以直接使用,比如最常見的 Zabbix、Nagios、Prometheus 等等。 下面,我就以 Prometheus 為例,為你介紹這幾個組件的基本原理。如下圖所示,就是 Prometheus 的基本架構:

7a72a36e-f158-11ec-ba43-dac502259ad0.png

先看數據采集模塊。最左邊的 Prometheus targets 就是數據采集的對象,而 Retrieval 則負責采集這些數據。從圖中你也可以看到,Prometheus 同時支持 Push 和 Pull 兩種數據采集模式。 Pull 模式,由服務器端的采集模塊來觸發采集。只要采集目標提供了 HTTP 接口,就可以自由接入(這也是最常用的采集模式)。 Push 模式,則是由各個采集目標主動向 Push Gateway(用于防止數據丟失)推送指標,再由服務器端從 Gateway 中拉取過去(這是移動應用中最常用的采集模式)。 第二個是數據存儲模塊。為了保持監控數據的持久化,圖中的 TSDB(Time series database)模塊,負責將采集到的數據持久化到 SSD 等磁盤設備中。TSDB 是專門為時間序列數據設計的一種數據庫,特點是以時間為索引、數據量大并且以追加的方式寫入。 第三個是數據查詢和處理模塊。剛才提到的 TSDB,在存儲數據的同時,其實還提供了數據查詢和基本的數據處理功能,而這也就是 PromQL 語言。PromQL 提供了簡潔的查詢、過濾功能,并且支持基本的數據處理方法,是告警系統和可視化展示的基礎。 第四個是告警模塊。右上角的 AlertManager 提供了告警的功能,包括基于 PromQL 語言的觸發條件、告警規則的配置管理以及告警的發送等。不過,雖然告警是必要的,但過于頻繁的告警顯然也不可取。所以,AlertManager 還支持通過分組、抑制或者靜默等多種方式來聚合同類告警,并減少告警數量。 最后一個是可視化展示模塊。Prometheus 的 web UI 提供了簡單的可視化界面,用于執行 PromQL 查詢語句,但結果的展示比較單調。不過,一旦配合 Grafana,就可以構建非常強大的圖形界面了。介紹完了這些組件,想必你對每個模塊都有了比較清晰的認識。接下來,我們再來繼續深入了解這些組件結合起來的整體功能。比如,以剛才提到的 USE 方法為例,我使用 Prometheus,可以收集 Linux 服務器的 CPU、內存、磁盤、網絡等各類資源的使用率、飽和度和錯誤數指標。然后,通過 Grafana 以及 PromQL 查詢語句,就可以把它們以圖形界面的方式直觀展示出來。

7a896e14-f158-11ec-ba43-dac502259ad0.png

4、最后總結

系統監控的核心是資源的使用情況,這既包括 CPU、內存、磁盤、文件系統、網絡等硬件資源,也包括文件描述符數、連接數、連接跟蹤數等軟件資源。而要描述這些資源瓶頸,最簡單有效的方法就是 USE 法。 USE 法把系統資源的性能指標,簡化為了三個類別:使用率、飽和度以及錯誤數。當這三者之中任一類別的指標過高時,都代表相對應的系統資源可能存在性能瓶頸。 基于 USE 法建立性能指標后,我們還需要通過一套完整的監控系統,把這些指標從采集、存儲、查詢、處理,再到告警和可視化展示等貫穿起來。這樣,不僅可以將系統資源的瓶頸快速暴露出來,還可以借助監控的歷史數據,來追蹤定位性能問題的根源。

三、應用監控

1、應用監控指標

跟系統監控一樣,在構建應用程序的監控系統之前,首先也需要確定,到底需要監控哪些指標。特別是要清楚,有哪些指標可以用來快速確認應用程序的性能問題。 應用程序的核心指標,不再是資源的使用情況,而是請求數、錯誤率和響應時間。 這些指標不僅直接關系到用戶的使用體驗,還反映應用整體的可用性和可靠性。有了請求數、錯誤率和響應時間這三個黃金指標之后,我們就可以快速知道,應用是否發生了性能問題。但是,只有這些指標顯然還是不夠的,因為發生性能問題后,我們還希望能夠快速定位“性能瓶頸區”。所以,在我看來,下面幾種指標,也是監控應用程序時必不可少的。 第一個,是應用進程的資源使用情況,比如進程占用的 CPU、內存、磁盤 I/O、網絡等。使用過多的系統資源,導致應用程序響應緩慢或者錯誤數升高,是一個最常見的性能問題。 第二個,是應用程序之間調用情況,比如調用頻率、錯誤數、延時等。由于應用程序并不是孤立的,如果其依賴的其他應用出現了性能問題,應用自身性能也會受到影響。 第三個,是應用程序內部核心邏輯的運行情況,比如關鍵環節的耗時以及執行過程中的錯誤等。由于這是應用程序內部的狀態,從外部通常無法直接獲取到詳細的性能數據。所以,應用程序在設計和開發時,就應該把這些指標提供出來,以便監控系統可以了解其內部運行狀態。 有了應用進程的資源使用指標,你就可以把系統資源的瓶頸跟應用程序關聯起來,從而迅速定位因系統資源不足而導致的性能問題; 有了應用程序之間的調用指標,你可以迅速分析出一個請求處理的調用鏈中,到底哪個組件才是導致性能問題的罪魁禍首; 而有了應用程序內部核心邏輯的運行性能,你就可以更進一步,直接進入應用程序的內部,定位到底是哪個處理環節的函數導致了性能問題。 基于這些思路,我相信你就可以構建出,描述應用程序運行狀態的性能指標。再將這些指標納入我們上一期提到的監控系統(比如 Prometheus + Grafana)中,就可以跟系統監控一樣,一方面通過告警系統,把問題及時匯報給相關團隊處理;另一方面,通過直觀的圖形界面,動態展示應用程序的整體性能。

2、全鏈路監控

業務系統通常會涉及到一連串的多個服務,形成一個復雜的分布式調用鏈。為了迅速定位這類跨應用的性能瓶頸,你還可以使用 Zipkin、Jaeger、Pinpoint 等各類開源工具,來構建全鏈路跟蹤系統。比如,下圖就是一個 Jaeger 調用鏈跟蹤的示例。

7a9dfab4-f158-11ec-ba43-dac502259ad0.png

全鏈路跟蹤可以幫你迅速定位出,在一個請求處理過程中,哪個環節才是問題根源。比如,從上圖中,你就可以很容易看到,這是 Redis 超時導致的問題。 全鏈路跟蹤除了可以幫你快速定位跨應用的性能問題外,還可以幫你生成線上系統的調用拓撲圖。這些直觀的拓撲圖,在分析復雜系統(比如微服務)時尤其有效。

3、日志監控

性能指標的監控,可以讓你迅速定位發生瓶頸的位置,不過只有指標的話往往還不夠。比如,同樣的一個接口,當請求傳入的參數不同時,就可能會導致完全不同的性能問題。所以,除了指標外,我們還需要對這些指標的上下文信息進行監控,而日志正是這些上下文的最佳來源。 對比來看,指標是特定時間段的數值型測量數據,通常以時間序列的方式處理,適合于實時監控。 而日志則完全不同,日志都是某個時間點的字符串消息,通常需要對搜索引擎進行索引后,才能進行查詢和匯總分析。 對日志監控來說,最經典的方法,就是使用 ELK 技術棧,即使用 Elasticsearch、Logstash 和 Kibana 這三個組件的組合。 如下圖所示,就是一個經典的 ELK 架構圖:

7aad9b2c-f158-11ec-ba43-dac502259ad0.png

Logstash 負責對從各個日志源采集日志,然后進行預處理,最后再把初步處理過的日志,發送給 Elasticsearch 進行索引。 Elasticsearch 負責對日志進行索引,并提供了一個完整的全文搜索引擎,這樣就可以方便你從日志中檢索需要的數據。 Kibana 則負責對日志進行可視化分析,包括日志搜索、處理以及絢麗的儀表板展示等。 下面這張圖,就是一個 Kibana 儀表板的示例,它直觀展示了 Apache 的訪問概況。

7ad8cdf6-f158-11ec-ba43-dac502259ad0.png

值得注意的是,ELK 技術棧中的 Logstash 資源消耗比較大。所以,在資源緊張的環境中,我們往往使用資源消耗更低的 Fluentd,來替代 Logstash(也就是所謂的 EFK 技術棧)。

4、最后總結

應用程序的監控,可以分為指標監控和日志監控兩大部分: 指標監控主要是對一定時間段內性能指標進行測量,然后再通過時間序列的方式,進行處理、存儲和告警。 日志監控則可以提供更詳細的上下文信息,通常通過 ELK 技術棧來進行收集、索引和圖形化展示。 在跨多個不同應用的復雜業務場景中,你還可以構建全鏈路跟蹤系統。這樣可以動態跟蹤調用鏈中各個組件的性能,生成整個流程的調用拓撲圖,從而加快定位復雜應用的性能問題。

-End-

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據采集
    +關注

    關注

    39

    文章

    6200

    瀏覽量

    113831
  • 監控系統
    +關注

    關注

    21

    文章

    3938

    瀏覽量

    175734
  • 可視化
    +關注

    關注

    1

    文章

    1198

    瀏覽量

    20989

原文標題:這篇監控系統的建設思路,讓你徹底找出性能瓶頸

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    可靠性失效分析常見思路

    失效分析在生產建設中極其重要,失效分析的限期往往要求很短,分析結論要正確無誤,改進措施要切實可行。 1 失效分析
    發表于 04-25 11:13 ?1.2w次閱讀
    可靠性失效<b class='flag-5'>分析</b>常見<b class='flag-5'>思路</b>

    某市配網配電室環境智能監控系統建設探索與實踐分析

    摘要: 配電室內溫濕度等環境因素直接影響到室內設備的安全可靠運行,結合某市配網配電室管理現狀介紹了環境智能監控系統建設的可行性,詳細閘述了系統試點建設方案。實踐證明該方案實現了配電室運
    發表于 01-09 16:30

    基于阿里云數加MaxCompute的企業大數據倉庫架構建設思路

    摘要:數加大數據直播系列課程主要以基于阿里云數加MaxCompute的企業大數據倉庫架構建設思路為主題分享阿里巴巴的大數據是怎么演變以及怎樣利用大數據技術構建企業級大數據平臺。本次分享嘉賓是來自阿里
    發表于 03-15 12:43

    金融系統內嵌入式DVR監控應用以及方案的設計思路探討

    。本文將以中國農業銀行某市分行聯網監控系統工程為例,對金融系統內嵌入式DVR監控應用以及方案的設計思路做一些探討。
    發表于 07-22 06:26

    輔助監控系統

    管理,使用不方便,增加了系統的管理成本。 因此,為提高整體運營及管理效率,有必要對現行變電所各個輔助監控系統進行整合,并對監控內容進行優化,以改進傳統的管理方式,實現信息的集中采集、
    發表于 06-01 14:14

    機房監控系統標準和常見故障記錄

    集中監控系統系統建設要求對機房整體動力環境設備工作有狀態演示,故障迅速定位、故障及時通知、保存報警信息及系統運行數據、繪制分析圖表、設備巡
    發表于 09-08 07:43

    SCADA監控系統都有哪些功能特點?

    隨著以物聯網為基礎的智慧水務的發展建設,SCADA系統以其獨特的優勢在各地智慧水務的建設中被廣泛應用,并在智慧水務中扮演著重要的角色。該系統幫助供水企業實現智慧供水。SCADA組態軟件
    發表于 03-07 16:02

    基于嵌入式Web的遠程監控系統設計

    本文結合機房環境設備的管理需要,分析了遠程監控系統的特點,提出基于嵌入式Web 服務器的遠程監控系統設計
    發表于 06-29 09:26 ?8次下載

    WCDMA室內系統建設思路

    摘要 本文主要闡述了WCDMA室內系統建設思路。從建設策略、建設流程以及詳細規劃幾個方面進行說明,并提出了一些工程經驗。以期從理論和實踐兩
    發表于 06-17 10:41 ?665次閱讀

    基于網絡化的平安城市監控與報警系統建設

    網絡化正在成為平安城市監控與報警系統的主流趨勢。基于網絡化構建的平安城市監控與報警系統建設模式主要有兩類:一類是自建專網,一類是與運營商合作。本文主要談網絡化平安城市
    發表于 02-27 11:06 ?1809次閱讀

    2014智慧城市建設思路

    智慧城市建設思路
    發表于 12-19 15:34 ?0次下載

    大數據平臺架構與建設思路

    大數據平臺架構與建設思路說明。
    發表于 03-24 15:48 ?16次下載
    大數據平臺架構與<b class='flag-5'>建設</b><b class='flag-5'>思路</b>

    微波拉遠系統問題分析及解決思路

    微波拉遠系統問題分析及解決思路分享。
    發表于 06-08 10:13 ?11次下載

    智慧園區視頻監控分析系統 YOLO

    智慧園區視頻監控分析系統基本建設的持續推進,云計算技術、互聯網大數據、物聯網技術、人工智能技術等現代信息技術的深層次運用,智慧園區視頻監控
    的頭像 發表于 07-08 08:40 ?343次閱讀
    智慧園區視頻<b class='flag-5'>監控</b><b class='flag-5'>分析</b><b class='flag-5'>系統</b> YOLO

    監控平臺設計思路

    電子發燒友網站提供《監控平臺設計思路.pptx》資料免費下載
    發表于 10-09 11:18 ?0次下載
    主站蜘蛛池模板: 99久久综合精品免费| 图片视频小说| 美女视频黄.免费网址| 奇米影视第四色7777| 天天射天天射| 广东毛片| 成人精品视频在线观看播放| 91极品视频在线观看| 开心激情五月网| 色吧在线观看| 人与禽一级一级毛片| 亚洲日韩图片专区第1页| 国内精品91久久久久| 精品亚洲大全| 午夜看片在线观看| 国产人成精品香港三级古代| 六月综合| 国产成人精品怡红院| 午夜影皖| 国产精品露脸脏话对白| 免费又黄又爽1000禁片| 国产精品片| 中文在线 | 中文| 一级做a爱免费观看视频| 在线看你懂| 最近2018中文字幕免费看2019 | 国产精品久久精品牛牛影视| 毛片大全在线| 国产成人v爽在线免播放观看| 亚色在线| 天天色啪| 1024手机在线看永久免费| 欧美日韩亚洲一区| 欧美爱爱帝国综合社区| 亚洲日韩色综合视频| 欧美人与动性视频在线观| www.欧美色图| 国产午夜精品理论片久久影视| 国内黄色精品| 男人午夜天堂| 日本视频网站在线www色|