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

記一次618軍演壓測(cè)TPS上不去排查及優(yōu)化

這篇具有很好參考價(jià)值的文章主要介紹了記一次618軍演壓測(cè)TPS上不去排查及優(yōu)化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本文內(nèi)容主要介紹,618醫(yī)藥供應(yīng)鏈質(zhì)量組一次軍演壓測(cè)發(fā)現(xiàn)的問(wèn)題及排查優(yōu)化過(guò)程。旨在給大家借鑒參考。

背景

本次軍演壓測(cè)背景是,2B業(yè)務(wù)線及多個(gè)業(yè)務(wù)側(cè)共同和B中臺(tái)聯(lián)合軍演。

現(xiàn)象

當(dāng)壓測(cè)商品卡片接口的時(shí)候,cpu達(dá)到10%,TPS只有240不滿足預(yù)期指標(biāo),但是TP99已經(jīng)達(dá)到了1422ms。

排查

對(duì)于這種TPS不滿足預(yù)期目標(biāo),但是TP99又超高,其實(shí)它的原因有很多中可能,通過(guò)之前寫(xiě)過(guò)的文章對(duì)性能瓶頸的一個(gè)分析方式《性能測(cè)試監(jiān)控指標(biāo)及分析調(diào)優(yōu)》,我們可以采用自下而上的策略去進(jìn)行排查:

首先是操作系統(tǒng)層面的CPU、內(nèi)存、網(wǎng)絡(luò)帶寬等,對(duì)于集團(tuán)內(nèi)部的壓測(cè),機(jī)器的配置、網(wǎng)絡(luò)帶寬,這些因素運(yùn)維人員已經(jīng)配置到最優(yōu)的程度了,無(wú)需我們?cè)訇P(guān)心是否是因?yàn)橛布Y源系統(tǒng)層面導(dǎo)致的因素。

接下來(lái)從代碼層面和JVM層面進(jìn)行排查,可能是項(xiàng)目代碼中出現(xiàn)了線程阻塞,導(dǎo)致線程出現(xiàn)等待,響應(yīng)時(shí)間變長(zhǎng),請(qǐng)求不能及時(shí)打到被測(cè)服務(wù)器上。對(duì)于這種猜測(cè),我們可以在壓測(cè)過(guò)程中打線程dump文件,從dump文件中找到哪個(gè)線程一致處于等待狀態(tài),從而找到對(duì)應(yīng)的代碼,查看是否可以進(jìn)行優(yōu)化。這塊同開(kāi)發(fā)一同分析整個(gè)接口的調(diào)用鏈路,商品卡片接口調(diào)用運(yùn)營(yíng)端的優(yōu)惠券的可領(lǐng)可用接口,通過(guò)查看此接口的ump監(jiān)控那個(gè),發(fā)現(xiàn)調(diào)用量其實(shí)并不高。接下來(lái)通過(guò)查看運(yùn)營(yíng)端機(jī)器的日志發(fā)現(xiàn),調(diào)用可領(lǐng)可用優(yōu)惠券接口已經(jīng)超時(shí)了,并且機(jī)器CPU已經(jīng)偏高,使用率平均在80%以上。是什么原因?qū)е抡{(diào)用可領(lǐng)可用接口大量超時(shí),成為了問(wèn)題的關(guān)鍵點(diǎn)。

記一次618軍演壓測(cè)TPS上不去排查及優(yōu)化

首先我們代碼層面分析,這個(gè)可領(lǐng)可用優(yōu)惠券接口還會(huì)調(diào)用一個(gè)過(guò)濾器進(jìn)行過(guò)濾,于是猜測(cè)是不是這個(gè)過(guò)濾器接口把CPU打滿了,但是通過(guò)監(jiān)控過(guò)濾器接口的ump中可以看到它的TP99并不是很高,說(shuō)明它的調(diào)用量沒(méi)有上去,這種猜測(cè)可能不成立。還好當(dāng)時(shí)代碼這設(shè)置了一個(gè)開(kāi)關(guān)是否使用過(guò)濾器,我們把過(guò)濾器的開(kāi)關(guān)關(guān)閉后。再次進(jìn)行壓測(cè)商品卡片接口,發(fā)現(xiàn)還是沒(méi)有解決問(wèn)題,TPS仍然不高,并且TP99還是很高。說(shuō)明這個(gè)猜測(cè)真是不成立的。

接下來(lái)我們轉(zhuǎn)換思路,查看JVM日志,是否從中尋找到一些蛛絲馬跡,果然從JVM的GC日志中可看到Y(jié)gc和Fgc的時(shí)間占用比較長(zhǎng),其中Fullgc的時(shí)間占用時(shí)間達(dá)到了7165ms,并且從中可以查看jvm的參數(shù)配置,發(fā)現(xiàn)Xms 和Xmx配置的值都是1024,只有1個(gè)G。問(wèn)題的原因找到了,這臺(tái)被壓測(cè)的機(jī)器JVM參數(shù)配置的Xms 和Xmx值太小了,如果-Xmx指定偏小,應(yīng)用可能會(huì)導(dǎo)致java.lang.OutOfMemory錯(cuò)誤

記一次618軍演壓測(cè)TPS上不去排查及優(yōu)化

記一次618軍演壓測(cè)TPS上不去排查及優(yōu)化

對(duì)于JVM的介紹這部分比較龐大涉及到類(lèi)加載方式、JVM內(nèi)存模型、垃圾回收算法、垃圾收集器類(lèi)型、GC日志,在這就不做詳細(xì)說(shuō)明了,想要了解詳細(xì)內(nèi)容可以看看《深入理解 JAVA 虛擬機(jī)》這本書(shū)。

此處簡(jiǎn)單說(shuō)明下什么是Ygc和Fgc,以及Xms、Xmx的含義。

JVM內(nèi)存模型中,分為新生代、老年代和元空間,新生代又分為eden區(qū)、Survivor0、Survivor1區(qū)。對(duì)象優(yōu)先在Eden區(qū)分配,當(dāng)Eden區(qū)沒(méi)有足夠空間時(shí)會(huì)進(jìn)行一次Minor GC,執(zhí)行完第一次MGC之后,存活的對(duì)象會(huì)被移動(dòng)到Survivor(from)分區(qū),當(dāng)Survivor區(qū)存儲(chǔ)滿了之后會(huì)進(jìn)行一次Ygc,但是Ygc一般不會(huì)影響應(yīng)用。當(dāng)老年代內(nèi)存不足的時(shí)候,會(huì)進(jìn)行一次Full GC,也就是Stop the world,系統(tǒng)將停止運(yùn)行,清理整個(gè)內(nèi)存堆(包括新生代和老年代) ,F(xiàn)ullGC頻率過(guò)大和時(shí)間過(guò)長(zhǎng),會(huì)嚴(yán)重影響系統(tǒng)的運(yùn)行。

Xms,JVM初始分配的堆內(nèi)存

Xmx,JVM最大分配的堆內(nèi)存

一般情況這兩個(gè)參數(shù)配置的值是相等的,以避免在每次GC 后堆內(nèi)存重新進(jìn)行分配。

優(yōu)化

最后修改機(jī)器的JVM數(shù)配置

查看JVM配置參數(shù)

重啟后再次進(jìn)行壓測(cè),我們的TPS指標(biāo)上來(lái)了,并且TP99的值也下去了。達(dá)到了預(yù)期的一個(gè)目標(biāo)。

總結(jié)

其實(shí)對(duì)于一個(gè)性能瓶頸問(wèn)題的分析排查定位,猶如醫(yī)生看病,需要望聞問(wèn)切,通過(guò)表面現(xiàn)象逐層的去排除一種種的可能性,最終找到其根本原因,對(duì)癥下藥解決問(wèn)題。本文介紹的也只是性能瓶頸問(wèn)題中的一個(gè)小小的部分,其實(shí)在壓測(cè)過(guò)程中還會(huì)遇到各種各樣的問(wèn)題,但是我們掌握了方法論,其實(shí)都可以按照相同的思路去排查,最終找到根源。

作者:京東健康 牛金亮

來(lái)源:京東云開(kāi)發(fā)者社區(qū)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-471678.html

到了這里,關(guān)于記一次618軍演壓測(cè)TPS上不去排查及優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 記一次壓測(cè)程序時(shí)的OOM分析過(guò)程

    記一次壓測(cè)程序時(shí)的OOM分析過(guò)程

    背 景:在一個(gè)項(xiàng)目調(diào)優(yōu)的過(guò)程中,豐富了一些組件后,再次對(duì)項(xiàng)目進(jìn)行壓測(cè),發(fā)現(xiàn)和之前的性能差距甚大,并且每次運(yùn)行一段時(shí)間后,延遲驟增,帶寬驟降,查看程序日志,發(fā)現(xiàn)了 OutOfMemory:java heap memory ; 現(xiàn)在知道了結(jié)果是OOM了,why? 逐步對(duì)比程序新增內(nèi)容,未發(fā)現(xiàn)會(huì)導(dǎo)致

    2024年01月24日
    瀏覽(16)
  • 記一次內(nèi)存泄漏排查

    記一次內(nèi)存泄漏排查

    最近某項(xiàng)目的服務(wù)突然告警,cpu超85%,隨后就是服務(wù)宕機(jī)。交付重啟服務(wù)后恢復(fù)正常但是隨后不久又開(kāi)始告警,特別是白天,嚴(yán)重影響客戶業(yè)務(wù)進(jìn)行。 1、分析日志 查看日志的過(guò)程中發(fā)現(xiàn)存在內(nèi)存溢出(OOM),思考要么存在內(nèi)存泄漏要么業(yè)務(wù)上觸發(fā)了某個(gè)接口存在大對(duì)象,結(jié)

    2023年04月16日
    瀏覽(33)
  • 記一次Nacos線程數(shù)飆升排查

    記一次Nacos線程數(shù)飆升排查

    近日有個(gè)項(xiàng)目用到了Nacos做注冊(cè)中心。運(yùn)行一段時(shí)間發(fā)現(xiàn)Nacos服務(wù)的線程數(shù)達(dá)到了1k+。這肯定是不正常的。 環(huán)境: 鏡像nacos-server 2.2.3 docker-compose編排部署 Nacos standalone模式 問(wèn)題表現(xiàn) docker stats nacos 發(fā)現(xiàn)該容器的線程數(shù)1k+ 用Fastthread分析stack文件表現(xiàn)如下 數(shù)量最多的線程線程棧如

    2024年02月09日
    瀏覽(30)
  • 記一次線上BUG排查過(guò)程

    記一次線上BUG排查過(guò)程

    1. 線上遇到一個(gè)非常奇怪的bug,為一個(gè)用戶分配業(yè)務(wù)線類(lèi)型后,該用戶登錄時(shí),提示502,但其它的用戶登錄完全是正常的 2. 問(wèn)題現(xiàn)象 3. 排查思路 先去看線上日志,看是否有error,但日志里邊這個(gè)接口200正常返回 本地debug,也復(fù)現(xiàn)一樣問(wèn)題,在分配角色類(lèi)型超過(guò)22個(gè)總數(shù)時(shí)就報(bào)

    2024年02月09日
    瀏覽(30)
  • 記一次kafka消息積壓的排查

    kafka消息積壓報(bào)警,首先進(jìn)行了自查,這個(gè)現(xiàn)象頻頻出現(xiàn),之前每次都是先重新分配分區(qū)或者回溯(消息可丟棄防止大量積壓消費(fèi)跟不上)。 根據(jù)手冊(cè)首先排查下消息拉取是否正常,看到了消息拉取線程是waiting狀態(tài),然后看到kafka這塊邏輯是消費(fèi)線程阻塞了拉取線程。 對(duì)比了

    2024年03月24日
    瀏覽(22)
  • 記一次docker啟動(dòng)失敗的問(wèn)題排查

    記一次docker啟動(dòng)失敗的問(wèn)題排查

    以前在虛擬機(jī)上安裝了一個(gè)docker,可以正常使用的,今天突然宿主機(jī)機(jī)器內(nèi)存條壞了,換了內(nèi)存條后啟動(dòng)機(jī)器,再使用 systemctrl start docker 啟動(dòng)docker,最后使用 docker start containID 啟動(dòng)報(bào)錯(cuò) 網(wǎng)上沒(méi)有找到相應(yīng)的描述,仔細(xì)分析看是 write /proc/sys/kernel/shmmni 報(bào)錯(cuò)了,錯(cuò)誤原因是 in

    2024年02月14日
    瀏覽(27)
  • 【記一次線上事故的排查思路】- CPU飆升問(wèn)題排查

    【記一次線上事故的排查思路】- CPU飆升問(wèn)題排查

    由于項(xiàng)目排期較緊,臨時(shí)從其他組調(diào)來(lái)三個(gè)開(kāi)發(fā)資源幫我一起做項(xiàng)目,難免上線的時(shí)候大家的需求一塊上線。 問(wèn)題來(lái)了,上線三天后,線上CPU總是莫名奇妙的突然飆升,飆升后CPU并未降下來(lái),而是一直處在高點(diǎn)。 由于是線上導(dǎo)致的問(wèn)題,CPU超限后,會(huì)自動(dòng)重啟項(xiàng)目,未能保

    2024年01月23日
    瀏覽(27)
  • 記一次Native memory leak排查過(guò)程

    記一次Native memory leak排查過(guò)程

    路由計(jì)算服務(wù)是路由系統(tǒng)的核心服務(wù),負(fù)責(zé)運(yùn)單路由計(jì)劃的計(jì)算以及實(shí)操與計(jì)劃的匹配。在運(yùn)維過(guò)程中,發(fā)現(xiàn)在長(zhǎng)期不重啟的情況下,有TP99緩慢爬坡的現(xiàn)象。此外,在每周例行調(diào)度的試算過(guò)程中,能明顯看到內(nèi)存的上漲。以下截圖為這兩個(gè)異常情況的監(jiān)控。 TP99爬坡 內(nèi)存爬坡

    2024年02月11日
    瀏覽(26)
  • 記一次Apache HTTP Client問(wèn)題排查

    記一次Apache HTTP Client問(wèn)題排查

    通過(guò)日志查看,存在兩種異常情況。 第一種:開(kāi)始的時(shí)候HTTP請(qǐng)求會(huì)報(bào)超時(shí)異常。 762663363 [2023-07-21 06:04:25] [executor-64] ERROR - com.xxl.CucmTool - CucmTool|sendRisPortSoap error,url:https://xxxxxx/realtimeservice/services/RisPort org.apache.http.conn.HttpHostConnectException: Connect to xxx [/xxx] failed: 連接超時(shí) 第二種

    2024年02月12日
    瀏覽(28)
  • ????網(wǎng)絡(luò)之謎:記一次失敗排查的故事

    ????網(wǎng)絡(luò)之謎:記一次失敗排查的故事

    在這篇文章中,我們將詳細(xì)探討導(dǎo)致故障的可能原因以及解決方案,以便更好地理解故障排查的復(fù)雜性和艱巨性,尤其是當(dāng)出現(xiàn)與本次故障表現(xiàn)相似的問(wèn)題時(shí)。 首先,讓我們回顧一下故障的表現(xiàn)。在客戶端調(diào)用接口時(shí),發(fā)現(xiàn)一直在轉(zhuǎn)圈等待,而服務(wù)器端卻收到了請(qǐng)求并在返回

    2024年02月05日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包