国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

性能測試監(jiān)控指標(biāo)及分析調(diào)優(yōu) | 京東云技術(shù)團(tuán)隊

這篇具有很好參考價值的文章主要介紹了性能測試監(jiān)控指標(biāo)及分析調(diào)優(yōu) | 京東云技術(shù)團(tuán)隊。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、哪些因素會成為系統(tǒng)的瓶頸?

1、CPU,如果存在大量的計算,他們會長時間不間斷的占用CPU資源,導(dǎo)致其他資源無法爭奪到CPU而響應(yīng)緩慢,從而帶來系統(tǒng)性能問題,例如頻繁的FullGC,以及多線程造成的上下文頻繁的切換,都會導(dǎo)致CPU繁忙,一般情況下CPU使用率<75%比較合適。

2、內(nèi)存,Java內(nèi)存一般是通過jvm內(nèi)存進(jìn)行分配的,主要是用jvm中堆內(nèi)存來存儲Java創(chuàng)建的對象。內(nèi)存的讀寫速度非???,但是內(nèi)存空間又是有限的,當(dāng)內(nèi)存空間被占滿,對象無法回收時,就會導(dǎo)致內(nèi)存溢出或內(nèi)存泄漏。

3、磁盤I/O,磁盤的存儲空間要比內(nèi)存存儲空間大很多,但是磁盤的讀寫速度比內(nèi)存慢,雖然現(xiàn)在引入SSD固態(tài)硬盤,但是還是無法跟內(nèi)存速度相比。

4、網(wǎng)絡(luò),帶寬的大小,會對傳輸數(shù)據(jù)有很大影響,當(dāng)并發(fā)量增加時,網(wǎng)絡(luò)很容易就會成為瓶頸。

5、異常,Java程序,拋出異常,要對異常進(jìn)行捕獲,這個過程要消耗性能,如果在高并發(fā)的情況下,持續(xù)進(jìn)行異常處理,系統(tǒng)的性能會受影響。

6、數(shù)據(jù)庫,數(shù)據(jù)庫的操作一般涉及磁盤I/O的讀寫,大量的數(shù)據(jù)庫讀寫操作,會導(dǎo)致磁盤I/O性能瓶頸,進(jìn)而導(dǎo)致數(shù)據(jù)庫操作延遲。

7、當(dāng)在并發(fā)編程的時候,經(jīng)常會用多線程操作同一個資源,這個時候為了保證數(shù)據(jù)的原子性,就要使用到鎖,鎖的使用會帶來上下文切換,從而帶來性能開銷,在JDK1.6之后新增了偏向鎖、自旋鎖、輕量級鎖、鎖粗化、鎖消除。

二、哪些指標(biāo)做為衡量系統(tǒng)的性能

1、RT響應(yīng)時間,包括如下

1.1 數(shù)據(jù)庫響應(yīng)時間,即數(shù)據(jù)庫操作的時間

1.2 服務(wù)端響應(yīng)時間,服務(wù)端包括Nginx分發(fā)的請求所消耗的時間及服務(wù)端程序執(zhí)行所消耗的時間。

1.3 網(wǎng)絡(luò)響應(yīng)時間,網(wǎng)絡(luò)傳輸,網(wǎng)絡(luò)硬件需要對傳輸?shù)恼埱筮M(jìn)行解析所消耗的時間

1.4 客戶端響應(yīng)時間,一般Web、App客戶端,消耗時間可以忽略不計,但是如果客戶端存在大量的邏輯處理,消耗的時間有能能就會變長。

2、TPS吞吐量

2.1 磁盤吞吐量

IOPS(Input/Output Per Second)每秒的輸入輸出量,這種是單位時間內(nèi)系統(tǒng)能處理的I/O請求數(shù)量,I/O請求通常為讀或?qū)憯?shù)據(jù)操作請求,關(guān)注隨機(jī)讀寫性能,適用于隨機(jī)讀寫頻繁的應(yīng)用,如小文件存儲,郵件服務(wù)器。 數(shù)據(jù)吞吐量,這種是單位時間可以傳輸?shù)臄?shù)據(jù)量,對于大量順序讀寫頻繁的應(yīng)用,傳輸大量連續(xù)數(shù)據(jù),例如視頻編輯。

2.2 網(wǎng)絡(luò)吞吐量

指網(wǎng)絡(luò)傳輸時沒有丟幀的情況下,設(shè)備能夠接受的最大數(shù)據(jù)速率。網(wǎng)絡(luò)吞吐量不僅跟帶寬有關(guān)系,還跟CPU處理能力、網(wǎng)卡、防火墻、以及I/O等緊密聯(lián)系,吞吐量的大小由網(wǎng)卡的處理能力、內(nèi)部程序算法以及帶寬大小決定。

3、資源使用率

3.1 CPU使用率,首先可以先了解CPU的基本信息,包括物理CPU的個數(shù)、單個CPU的核數(shù),然后可以通過命令查看使用率,vmstat、mpstat、top

3.2 內(nèi)存使用率,free -m、vmstat、top

3.3 磁盤I/O, iostat、 iotop、

3.4 網(wǎng)絡(luò)I/O,netstat、ifconfig、tcpstat、

三、性能測試注意的問題

1、我們在做性能測試的時候,系統(tǒng)的運(yùn)行會越來越快,后面的訪問速度比我們第一次訪問的速度快了好幾倍,這是因為Java語言編譯的順序是,.java文件先編譯為.class文件,然后通過解釋器將.class的字節(jié)碼轉(zhuǎn)換成本地機(jī)器碼后,才能運(yùn)行。為了節(jié)約內(nèi)存和執(zhí)行效率,代碼最初被執(zhí)行時,解釋器會率先解釋執(zhí)行這段代碼。隨著代碼被執(zhí)行的次數(shù)增多,虛擬機(jī)發(fā)現(xiàn)某個方法或代碼運(yùn)行的特別頻繁,就被認(rèn)定為熱點(diǎn)代碼(Hot Spot Code)。為了提高熱點(diǎn)代碼的執(zhí)行效率,在運(yùn)行時虛擬機(jī)將會通過即時編譯器(JIT)把這些代碼編譯成為本地平臺相關(guān)的機(jī)器碼,然后儲存在內(nèi)存中,之后每次運(yùn)行代碼時,直接從內(nèi)存中獲取。這樣就會導(dǎo)致第一次系統(tǒng)運(yùn)行慢,后面訪問的速度快幾倍。

2、在做性能測試的時候,每次測試處理的數(shù)據(jù)集都是一樣的,但是結(jié)果卻有差異,這是因為測試時,伴隨著很多不穩(wěn)定因素,比如機(jī)器其他進(jìn)程的影響、網(wǎng)絡(luò)波動以及每個階段JVM垃圾回收的不同等。我們可以通過多次測試,將測試結(jié)果求平均,只要保證平均值在合理范圍之內(nèi),并且波動不是很大,這種情況,性能測試就算通過。

四、定位性能問題的時候,可以使用自下而上的策略分析排查

當(dāng)我們進(jìn)行壓測之后,我們會輸出一份性能測試報告,其中包括,RT、TPS、TP99,被壓服務(wù)器的CPU、內(nèi)存、I/O,以及JVM的GC頻率。通過這些指標(biāo)可以發(fā)現(xiàn)性能瓶頸。我們可以采用自下而上的方式進(jìn)行分析。

1、首先從操作系統(tǒng)層面,查看系統(tǒng)的CPU、內(nèi)存、I/O、網(wǎng)絡(luò)的使用率是否異常,再通過命令查找異常日志,最后通過日志分析,找到導(dǎo)致瓶頸的問原因。

2、還可以從Java應(yīng)用的JVM層面,查看JVM的垃圾回收頻率以及內(nèi)存分配情況是否存在異常,分析垃圾回收日志,找到導(dǎo)致瓶頸的原因。

3、如果系統(tǒng)和JVM層面都沒有出現(xiàn)異常情況,然后可以從應(yīng)用服務(wù)業(yè)務(wù)層查看是否存在性能瓶頸,例如,Java編程問題,讀寫數(shù)據(jù)庫瓶頸等。

五、優(yōu)化性能問題的時候,可以使用自上而下的策略進(jìn)行優(yōu)化

整體的調(diào)優(yōu)順序,我們可以從業(yè)務(wù)調(diào)優(yōu)到編程調(diào)優(yōu),最后再到系統(tǒng)調(diào)優(yōu)

1、應(yīng)用層調(diào)優(yōu)

首先是優(yōu)化代碼,代碼問題往往會因為消耗系統(tǒng)資源而暴漏出來,例如代碼導(dǎo)致內(nèi)存溢出,使JVM內(nèi)存用完,而發(fā)生頻繁的FullGC,導(dǎo)致CPU偏高。

其次是優(yōu)化設(shè)計,主要是優(yōu)化業(yè)務(wù)層和中間件層代碼,例如可以采用代理模式,放在頻繁調(diào)用的創(chuàng)建對象的場景里,共享一個創(chuàng)建對象,減少創(chuàng)建對象的消耗。

再次是優(yōu)化算法,選擇合適的算法降低時間復(fù)雜度。

2、中間件調(diào)優(yōu)

MySQL調(diào)優(yōu)

1)、表結(jié)構(gòu)與索引優(yōu)化。

主要是對數(shù)據(jù)庫設(shè)計、表結(jié)構(gòu)設(shè)計以及索引設(shè)置維度進(jìn)行的優(yōu)化,設(shè)計表結(jié)構(gòu)的時候,考慮數(shù)據(jù)庫的水平與垂直的拓展能力,提前規(guī)劃好將來數(shù)據(jù)量、讀寫量的增長,規(guī)劃好分庫分表方案。對字段選擇合適的數(shù)據(jù)類型,優(yōu)先選用較小的數(shù)據(jù)結(jié)構(gòu)。

2)、SQL語句優(yōu)化。

主要是對SQL語句進(jìn)行的優(yōu)化,使用explain來查看執(zhí)行計劃,來查看是否使用了索引,使用了哪些索引。也可以使用Profile命令分析語句執(zhí)行過程中各個分步的耗時。

3)、MySQL參數(shù)優(yōu)化。

主要是對MySQL服務(wù)的配置進(jìn)行優(yōu)化,例如連接數(shù)的管理,對索引緩存、查詢緩存、排序緩存等各種緩存大小進(jìn)行優(yōu)化

4)、硬件及系統(tǒng)配置。

對硬件設(shè)備和操作系統(tǒng)設(shè)置進(jìn)行優(yōu)化,例如調(diào)整操作系統(tǒng)參數(shù)、禁用swap、增加內(nèi)存、升級固態(tài)硬盤。

3、系統(tǒng)調(diào)優(yōu)

首先是操作系統(tǒng)調(diào)優(yōu),Linux操作的內(nèi)核參數(shù)設(shè)置可以進(jìn)行調(diào)優(yōu),已達(dá)到提供高性能的目的。
其次,JVM調(diào)優(yōu),設(shè)置合理的JVM內(nèi)存空間,以及垃圾回收算法來提高性能,例如,如果業(yè)務(wù)邏輯會創(chuàng)建大對象,我們就可以設(shè)置,將大的對象直接放到老年代中,這樣可以減少年輕代頻發(fā)發(fā)生YongGC,減少CPU的占用時間。

4、調(diào)優(yōu)的策略

首先是時間換取空間,有的時候系統(tǒng)對查詢速度要求不高,對存儲空間要求較高,這個時候我們可以考慮用時間換取空間。

其次是空間換取時間,用存儲空間提升訪問速度,典型的就是MySQL的分庫分表策略,MySQL表單數(shù)據(jù)存儲千萬以上的時候,讀寫性能就會下降,這個時候我們可以將數(shù)據(jù)進(jìn)行拆分,以達(dá)到查詢的時候,每個表的數(shù)據(jù)是少量的,以達(dá)到提升性能的目的。

5、兜底策略

系統(tǒng)調(diào)優(yōu)后,仍然還會存在性能問題,這個時候我們需要有兜底策略, 首先是限流,對系統(tǒng)的入口設(shè)置最大訪問限制,同時采取斷熔措施,返回沒有成功的請求。 其次是橫向擴(kuò)容,當(dāng)訪問量超過某一個閾值時,系統(tǒng)可以自動橫向增加服務(wù)。

作者:京東健康 牛金亮

內(nèi)容來源:京東云開發(fā)者社區(qū)文章來源地址http://www.zghlxwxcb.cn/news/detail-459978.html

到了這里,關(guān)于性能測試監(jiān)控指標(biāo)及分析調(diào)優(yōu) | 京東云技術(shù)團(tuán)隊的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 實踐指南-前端性能提升 270% | 京東云技術(shù)團(tuán)隊

    實踐指南-前端性能提升 270% | 京東云技術(shù)團(tuán)隊

    當(dāng)我們疲于開發(fā)一個接一個的需求時,很容易忘記去關(guān)注網(wǎng)站的性能,到了某一個節(jié)點(diǎn),猛地發(fā)現(xiàn),隨著越來越多代碼的堆積,網(wǎng)站變得越來越慢。 本文就是從這樣的一個背景出發(fā),著手優(yōu)化網(wǎng)站的前端性能,并總結(jié)出一套開發(fā)習(xí)慣,讓我們在日常開發(fā)時,也保持高性能,而

    2024年02月13日
    瀏覽(24)
  • 突破傳統(tǒng)監(jiān)測模式:業(yè)務(wù)狀態(tài)監(jiān)控HM的新思路 | 京東云技術(shù)團(tuán)隊

    突破傳統(tǒng)監(jiān)測模式:業(yè)務(wù)狀態(tài)監(jiān)控HM的新思路 | 京東云技術(shù)團(tuán)隊

    在系統(tǒng)架構(gòu)設(shè)計中非常重要的一環(huán)是要做數(shù)據(jù)監(jiān)控和數(shù)據(jù)最終一致性,關(guān)于一致性的補(bǔ)償,已經(jīng)由算法部的大佬總結(jié)過就不再贅述。這里主要講如何去補(bǔ)償?補(bǔ)償?shù)姆桨改男??這就引出來數(shù)據(jù)監(jiān)控系統(tǒng)了。有小伙伴會問了,為什么業(yè)務(wù)狀態(tài)監(jiān)控系統(tǒng)可以做補(bǔ)償?別急,往下看

    2024年02月14日
    瀏覽(16)
  • 京東小程序接入ARVR的技術(shù)方案和性能調(diào)優(yōu)

    作者:京東零售 戴旭 京東小程序是一個開放技術(shù)平臺,正在被越來越多的頭部品牌選擇,用于站內(nèi)私域流量的營銷和運(yùn)營。諸如各種日化、奢侈品等品牌對ARVR有較多的訴求,希望京東小程序引擎提供一些底層能力,疊加品牌自主的個性化開發(fā)和定制,以支持更加豐富的場景

    2023年04月23日
    瀏覽(29)
  • 架構(gòu)師日記-從代碼到設(shè)計的性能優(yōu)化指南 | 京東云技術(shù)團(tuán)隊

    架構(gòu)師日記-從代碼到設(shè)計的性能優(yōu)化指南 | 京東云技術(shù)團(tuán)隊

    服務(wù)性能是指服務(wù)在特定條件下的響應(yīng)速度、吞吐量和資源利用率等方面的表現(xiàn)。據(jù)統(tǒng)計,性能優(yōu)化方面的精力投入,通常占軟件開發(fā)周期的10%到25%左右,當(dāng)然這和應(yīng)用的性質(zhì)和規(guī)模有關(guān)。性能對提高用戶體驗,保證系統(tǒng)可靠性,降低資源使用率,甚至增強(qiáng)市場競爭力等方面

    2024年02月05日
    瀏覽(21)
  • 極致性能優(yōu)化:前端SSR渲染利器Qwik.js | 京東云技術(shù)團(tuán)隊

    極致性能優(yōu)化:前端SSR渲染利器Qwik.js | 京東云技術(shù)團(tuán)隊

    前端性能已成為網(wǎng)站和應(yīng)用成功的關(guān)鍵要素之一。用戶期望快速加載的頁面和流暢的交互,而前端框架的選擇對于實現(xiàn)這些目標(biāo)至關(guān)重要。然而,傳統(tǒng)的前端框架在某些情況下可能面臨性能挑戰(zhàn)且存在技術(shù)壁壘。 在這個充滿挑戰(zhàn)的背景下,我們引入了 Qwik.js 框架。Qwik.js 不僅

    2024年02月05日
    瀏覽(24)
  • Flink測試?yán)髦瓺ataGen初探 | 京東云技術(shù)團(tuán)隊

    Flink測試?yán)髦瓺ataGen初探 | 京東云技術(shù)團(tuán)隊

    Flink SQL 是基于 Apache Calcite 的 SQL 解析器和優(yōu)化器構(gòu)建的,支持ANSI SQL 標(biāo)準(zhǔn),允許使用標(biāo)準(zhǔn)的 SQL 語句來處理流式和批處理數(shù)據(jù)。通過 Flink SQL,可以以聲明式的方式描述數(shù)據(jù)處理邏輯,而無需編寫顯式的代碼。使用 Flink SQL,可以執(zhí)行各種數(shù)據(jù)操作,如過濾、聚合、連接和轉(zhuǎn)換

    2024年02月07日
    瀏覽(19)
  • Java單元測試及常用語句 | 京東物流技術(shù)團(tuán)隊

    Java單元測試及常用語句 | 京東物流技術(shù)團(tuán)隊

    編寫Java單元測試用例,即把一段復(fù)雜的代碼拆解成一系列簡單的單元測試用例,并且無需啟動服務(wù),在短時間內(nèi)測試代碼中的處理邏輯。寫好Java單元測試用例,其實就是把“復(fù)雜問題簡單化,建單問題深入化“。在編寫的過程中, 我們也可以對自己的代碼進(jìn)行一個二次檢查

    2024年02月10日
    瀏覽(23)
  • 從iOS App啟動速度看如何為基礎(chǔ)性能保駕護(hù)航 | 京東物流技術(shù)團(tuán)隊

    從iOS App啟動速度看如何為基礎(chǔ)性能保駕護(hù)航 | 京東物流技術(shù)團(tuán)隊

    啟動是App給用戶的第一印象,一款A(yù)pp的啟動速度,不單單是用戶體驗的事情,往往還決定了它能否獲取更多的用戶。所以到了一定階段App的啟動優(yōu)化是必須要做的事情。App啟動基本分為以下兩種 App 點(diǎn)擊啟動前,它的進(jìn)程不在系統(tǒng)里,需要系統(tǒng)新創(chuàng)建一個進(jìn)程分配給它啟動的

    2024年02月15日
    瀏覽(20)
  • iOS 單元測試之常用框架 OCMock 詳解 | 京東云技術(shù)團(tuán)隊

    iOS 單元測試之常用框架 OCMock 詳解 | 京東云技術(shù)團(tuán)隊

    1.1 單元測試的必要性 測試驅(qū)動開發(fā)并不是一個很新鮮的概念了。在日常開發(fā)中,很多時候需要測試,但是這種輸出是必須在點(diǎn)擊一系列按鈕之后才能在屏幕上顯示出來的東西。測試的時候,往往是用模擬器一次一次的從頭開始啟動 app,然后定位到自己所在模塊的程序,做一

    2024年02月09日
    瀏覽(19)
  • springboot升級過程中踩坑定位分析記錄 | 京東云技術(shù)團(tuán)隊

    作者:京東零售?李文龍 “ 俗話說:為了修復(fù)一個小bug而引入了一個更大bug ” 因所負(fù)責(zé)的系統(tǒng)使用的spring框架版本5.1.5.RELEASE在線上出過一個偶發(fā)的小事故,最后定位為spring-context中的一個bug導(dǎo)致的。 為了修復(fù)此bug進(jìn)行了spring版本的升級,最終定的版本為收銀臺團(tuán)隊使用的版

    2024年02月01日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包