成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java 應用發(fā)布后,需要關注的7個性能指標

MSchumi / 2147人閱讀

摘要:可行工具圖為上監(jiān)控到的應用程序響應時間和吞吐量平均負載第二個廣泛使用的衡量指標就是服務器的平均負載。率和中止時間垃圾回收器行為異常,是導致應用吞吐量和響應時間突然下降的主要原因之一。

在某個重大發(fā)布之后,都需要記錄相應的指標,本文介紹了最重要的幾個 Java 性能指標,包括響應時間和平均負載等。為理解應用程序在生產(chǎn)環(huán)境中如何運行,就需要遵循一些 Java 性能指標。

在以前,當軟件被發(fā)布后,開發(fā)者是沒有方法去了解它在生產(chǎn)環(huán)境中的運行情況;而現(xiàn)在,幾乎任一個你可以想到的指標都可以被監(jiān)測和報告。時下,開發(fā)者面臨的問題并不是缺乏信息,而是信息過載、過大。因此在數(shù)百臺服務器同時工作的情景下,跟蹤記錄信息就變得越來越困難,雖然多數(shù)開發(fā)者為了深刻理解產(chǎn)品系統(tǒng)仍舊需要利用日志文件,但依然阻擋不了它們逐步被取代的命運。

本文整理了一些重要的指標,使開發(fā)者在不借助任何日志文件的情況下,便于理解應用程序在生產(chǎn)環(huán)境中運行的具體過程。談到對 Java 性能的影響,除了像用戶負載(或者 AWS 云服務器停機)這樣的外部因素,新功能發(fā)布可能是最常見的誘因。所以在那些新功能發(fā)布之后的敏感時段,遵循相應準則變得更為關鍵。

數(shù)字至上

在逐個討論指標之前,先來強調(diào)一個重要問題。有這樣一個觀點:如果某個觀點可以得到數(shù)字支持,那么它一定是毋庸置疑的。但是這里存在的問題是,當給你呈現(xiàn)時,很多因素會歪曲你對數(shù)據(jù)的理解。這么說可能有點抽象,這里可以對比這兩個測量用例:首先,在一個簡單的時間序列中,觀察某一個特定基本指標如何隨著時間推移而變化;其次,從不同的角度觀察數(shù)據(jù),并保存關注的性能百分比,底線就是一定要關心留意的那個指標所產(chǎn)生的影響,并給以完整性檢查以便對其評估。

例如,假設我們正在觀察中值/50百分點處的事務響應時間,因為該點的響應時間已被廣泛用作指示符,很多公司將其作為主要KPI之一。在實際中,若單個頁面瀏覽人數(shù)達到幾十及以上(一般遠遠超過40),就意味著該用戶有99.999...%的可能會經(jīng)受比中值更差的結(jié)果(數(shù)學公式可簡單的表示為:1 –(0.5 ^ 40) 。因此什么百分點更有意義呢?即使觀察點設在第95的百分點,然后你的單頁面瀏覽人數(shù)遠大于40,那么大部分的用戶仍會經(jīng)受比之前更糟糕的響應時間。若符合多個頁面瀏覽量,事情會更加復雜。想閱讀更多關于百分點的知識,了解其對數(shù)據(jù)的誤導,可點擊此處進入Gil Tene 的博客。

家下來我們來仔細解讀指標的選擇,看看它們各自代表什么,并學習如何來理解這些指標。

1. 響應時間與吞吐量

響應時間用來衡量應用程序中的事務處理速度,它也可以從 HTTP 請求層和數(shù)據(jù)庫層來觀察。有些最慢的查詢需要最優(yōu)化解決,而響應時間可以縮小該查詢的范圍。吞吐量從另一個角度觀察處理過程,并顯示應用程序在給定時間域中處理多少請求,通常單位為每分鐘(cpm)。

測量響應時間的方法之一就是使用像 New Relic 或者 AppDynamics(就是曾在以前的博客討論的)那種 APM(應用性能監(jiān)控工具),通過這些工具,可以追蹤平均響應時間,并可以直接在主報告儀表板上與昨日或者上周的平均響應時間作比較,這些比較有助于查看新的部署如何對應用程序造成了影響。另一種方法是通過測量網(wǎng)頁處理的百分位數(shù),來測量 HTTP 請求完成響應所需的時間。

也可以內(nèi)部監(jiān)測響應時間,但是需要硬代碼,例如通過 Dropwizard 指標發(fā)送數(shù)據(jù)并在 Graphite 上發(fā)布。盡管看來將這些數(shù)據(jù)和其他標準關聯(lián)時會出現(xiàn)最有用的見解,但更多的見解仍涵蓋在接下來的方法中。

要點1: 確保所使用的采集方法可以實現(xiàn)從不同角度觀測數(shù)據(jù),并開始進入百分位層面。

可行工具:

AppDynamics

New Relic

Ruxit

OneAPM

圖為 OneAPM 上監(jiān)控到的 Java 應用程序響應時間和吞吐量

2. 平均負載

第二個廣泛使用的衡量指標就是服務器的平均負載。平均負載習慣上分成3部分,在最后的1、5和15分鐘(從左到右)顯示其結(jié)果。只要分數(shù)低于機器內(nèi)核的數(shù)量,就是無壓力狀態(tài),一旦超過內(nèi)核數(shù),就意味著機器處于壓力狀態(tài)。

平均負載除了可以簡單測量 CPU 利用率,更著重于考量每個內(nèi)核目前在隊列中有多少進程。某內(nèi)核利用率達100%,但是卻即將結(jié)束任務,而另一內(nèi)核在隊列中還有6個進程要處理,這兩種情況是截然不同的。CPU 這一概念并沒有涵蓋其區(qū)別,但是平均負載卻可以從大局中考慮此問題。

若在 linux 系統(tǒng)上跟蹤平均負載情況,一個極好的方式就是通過 Hisham Muhammad 利用 htop 完成。豐富的色彩加上生動的視覺化效果,瞬間使得命令行有了 NASA 儀表板的即視感。

要點2: 要確定負載,僅靠資源利用率是不夠的,還需要格外注意以便充分了解隊列中的進程。

可行工具:

htop

圖為在一臺服務器上運行 htop 以檢測負載,平均負載顯示在界面的右上角。

3. 錯誤率(及如處理)

錯誤率觀測有多種方法,而多數(shù)開發(fā)人員都利用高層次標準——在整個應用層考察錯誤率,比如在所有 HTTP 請求中考察失敗的 HTTP 處理總數(shù)。但是還有一個經(jīng)常被忽視的具體點:特定事務的錯誤,這與應用程序的運行狀況有直接的影響。代碼中某一特定方法失敗、生成日志錯誤及發(fā)生異常的次數(shù)占總調(diào)用次數(shù)的比重,也要予以顯示。

圖為 OneAPM 對事務中的錯誤率監(jiān)控,隨時間監(jiān)控應用錯誤率情況。

但是這些數(shù)據(jù)對其本身并沒有太大的意義。第一步,從正在處理的事件中優(yōu)選出最緊急的一件,找到日志錯誤或異常;第二步,從實際根源處著手,并予以修復。而且基于此問題,已有相應的解決辦法。有了 OneAPM ,就沒有必要根據(jù)日志文件去找錯誤提示,因為關于服務器狀態(tài)的所有信息都會在同一界面顯示,包括堆棧蹤跡、實源代碼、變量值及每個錯誤調(diào)用的應用實例。

要點3: 要解決錯誤率增長的根本原因,僅靠日志文件是不夠的,為了得到大量關于我們所需指標的數(shù)據(jù),還需要利用一些錯誤率監(jiān)控工具。

4. GC率和中止時間

垃圾回收器行為異常,是導致應用吞吐量和響應時間突然下降的主要原因之一。讀者想要了解關于垃圾回收過程的更多知識和相關的標準,可閱讀 深入理解Java虛擬機(第2版)。

分析 GC 日志文件是理解 GC 中止時間和頻率的關鍵。如果不自行分析,或者使用類似于 jClarity 的工具,這種指標是沒有辦法直接使用的。所以要確保使用合適的 JVM 參數(shù)打開 GC 日志采集,以便分析。

要點4: 請記住,分析不同指標的相關數(shù)據(jù),要保持開闊的思維,這樣容易發(fā)現(xiàn)它們之間的互相影響。

可行工具:

jClarity Censum

GCViewer

5. 業(yè)務指標

應用的性能不是僅僅依賴于快速響應,也非錯誤率,另一個方面就是業(yè)務指標。其業(yè)務責任也不是只由產(chǎn)品/銷售人員全權(quán)負責。收入、用戶數(shù)、與應用中特定區(qū)域的互動等,這些都對理解軟件的運行極為關鍵。若要從業(yè)務角度觀察,你所配置的修復方法和新功能是如何影響底線的,以上因素與新部署的時間標記一起作用這一點至關重要。我們固然希望情況向好的方向發(fā)展,但假如事態(tài)惡化,一旦你把所有數(shù)據(jù)都存在同一位置,要想知道哪里出了問題需要修復,這就相當容易了。

此外,將業(yè)務指標與錯誤率、延時等數(shù)據(jù)實時連接起來,這種能力是極有力度的。然后會讓人不由自主地深入研討到底是什么錯誤或異常造成了這次最主要的問題,接著就可以按照對業(yè)務目的影響優(yōu)先考慮它們。想要搞清楚遍布各處的所有異常及日志錯誤,就得使用集成開放的監(jiān)測工具。所以,保持數(shù)據(jù)開放,使其可以輸出到選擇服務中,這是極其重要的。

假如你要利用 Graphite 將匯報的業(yè)務指標集中化,這就要求你所使用的工具對發(fā)送數(shù)據(jù)開放。例如,我們的工程組就將匯報指標通過 StatsD 發(fā)布出來,因此相應數(shù)據(jù)就可以指向任一用戶選擇使用的儀表板上。

要點5: 先入先出式數(shù)據(jù)已是過去式,在使用指標時,也需要讓它們和其他來源的數(shù)據(jù)相關聯(lián)。

可行工具:

Grafana

The ELK stack

Datadog

Librato

6.正常運行時間和服務運行狀況

該指標為整體的工作定下基調(diào)。除用作警示媒介外,它還可用于在一段時間內(nèi)自定義 SLA,以便觀察當為用戶提供功能完備的服務時所用時間的百分比。

我們通過運行使用 servlet 的 Pingdom 來解決這個問題,它會對所有應用程序事務中參與的服務進行檢查,包括數(shù)據(jù)庫和 S3 等。

要點6: 正常運行時可能是二進制指標,但是通過聚合多個值的方式在堆棧中定位薄弱點。

可行工具:

Pingdom

圖為用 Pingdom 監(jiān)測正常運行時和應用運行狀況。

7.日志規(guī)模

以上討論到的指標除了 GC 都沒有提到日志,但這個仍然不可忽略。日志文件的副作用就是它們一直在增長,如果不留意其大小以及抑制,那么后果不堪設想。當日志不受控制,磁盤驅(qū)動器很可能被撐爆,服務器中會充斥著垃圾文件,運行緩慢,因此,一定要密切關注日志規(guī)模,否則隨時會崩潰。

一個廣泛使用的解決辦法就是,使用 logstash 等將服務器上的日志分塊,再將其送入Splunk、ELK 等其他日志管理工具中存儲,或者直接簡單地存入 S3。另一種方法就是在某一時間將日志文件翻轉(zhuǎn)再截斷,但此法要冒信息丟失的風險。和大部分開發(fā)人員一樣,目前我們還必須依賴于日志。

要點7: 日志會給人帶來很大的困擾,尤其是當你用某些外部服務來處理日志時,你會被 GB 指控。這時就要重新考慮一下這個問題,還應該開始降低日志大小。

最后的思考

我們可以看到這一趨勢:目前在產(chǎn)品中,應用里的數(shù)據(jù)采集器正逐漸脫離對日志文件的依賴。軟件分析的新世界越來越開放,數(shù)據(jù)更加智能化,已不再是以前枯燥的數(shù)字,而是帶有豐富的情境。我們很興奮地看著世界的改變,并期待和你們一起共建嶄新的未來。

原文地址:https://dzone.com/articles/7-java-performance-metrics-to-watch-after-a-major-1

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65315.html

相關文章

  • 聊聊企業(yè)級 Java 應用最重要4個性指標

    摘要:筆者多次參與銀行運營商等大型企業(yè)的性能優(yōu)化工作總結(jié)了企業(yè)級應用最應重視的個性能指標,主要包括商業(yè)事務,外部服務,垃圾回收以及應用布局。應用布局最后要探討的性能指標是應用布局。另一個需要監(jiān)測的是容器性能。 雖然很多人都曾預言 Java 將一蹶不振,但是不可否認的是,很多重要項目中,尤其是銀行和政府一些大型項目,Java 仍在其中扮演著極其重要的角色。筆者多次參與銀行、運營商等大型企業(yè)的性...

    sherlock221 評論0 收藏0
  • 八大行業(yè)云計算大數(shù)據(jù)落地受關注

    摘要:金融行業(yè)的云計算及大數(shù)據(jù)安全規(guī)則如何確立未來金融行業(yè)開放策略。醫(yī)療行業(yè)云平臺和大數(shù)據(jù)催生互聯(lián)網(wǎng)健康產(chǎn)業(yè)。房地產(chǎn)行業(yè)大數(shù)據(jù)人才缺乏。房地產(chǎn)行業(yè)對大數(shù)據(jù)應用比較晚,但是空間廣闊。 看起來很美很熱鬧的云計算大數(shù)據(jù),在具體落地時卻不得不面對一系列這樣的現(xiàn)實問題。正如中國電子學會副秘書長林潤華所言:產(chǎn)業(yè)界確實認為這是大的發(fā)展方向,也是非常好的轉(zhuǎn)型機會,但是用戶還抱著非常審慎的態(tài)度。金模網(wǎng)CEO羅百輝認...

    anonymoussf 評論0 收藏0

發(fā)表評論

0條評論

MSchumi

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<