国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

解Bug之路-記一次線上請(qǐng)求偶爾變慢的排查

開發(fā) 開發(fā)工具
在遇到問題,并且思路陷入僵局時(shí),可以通過一些腳本工具,例如grep以及awk或者其它一些工具對(duì)眾多日志進(jìn)行分析,不停的去尋找規(guī)律,從無序中找到有序,往往能夠產(chǎn)生意想不到的效果!

 [[402645]]

本文轉(zhuǎn)載自微信公眾號(hào)「解Bug之路」,作者alchemystarlzy。轉(zhuǎn)載本文請(qǐng)聯(lián)系解Bug之路公眾號(hào)。

前言

最近解決了個(gè)比較棘手的問題,由于排查過程挺有意思,于是就以此為素材寫出了本篇文章。

Bug現(xiàn)場(chǎng)

這是一個(gè)偶發(fā)的性能問題。在每天幾百萬比交易請(qǐng)求中,平均耗時(shí)大約為300ms,但總有那么100多筆會(huì)超過1s,讓我們業(yè)務(wù)耗時(shí)監(jiān)控的99.99線變得很尷尬。如下圖所示:

為了精益求精,更為了消除這個(gè)尷尬的指標(biāo),筆者開始探尋起這100多慢請(qǐng)求筆的原因。

先找一筆看看

由于筆者寫的框架預(yù)留了traceId,所以找到這筆請(qǐng)求的整個(gè)調(diào)用的鏈路還是非常簡(jiǎn)單的。而且通過框架中的攔截器在性能日志中算出了每一筆請(qǐng)求的耗時(shí)。這樣,非常便于分析鏈路到底是在哪邊耗時(shí)了。性能日志中的某個(gè)例子如下圖所示:

  1. 2020-09-01 15:06:59.010 [abcdefg,A->B,Dubbo-thread-1,ipA->ipB] B.facade,cost 10 ms  

拉出來一整條調(diào)用鏈路后,發(fā)現(xiàn)最前面的B系統(tǒng)調(diào)用C系統(tǒng)就比較慢。后面鏈路還有幾個(gè)調(diào)用慢的,那先不管三七二十一,先分析B調(diào)用C系統(tǒng)吧。

我們從監(jiān)控系統(tǒng)看出來正常的B系統(tǒng)調(diào)用C系統(tǒng)平均耗時(shí)只有20ms,這次的耗時(shí)增長(zhǎng)了10倍!

正常思路,那當(dāng)然是C系統(tǒng)有問題么,畢竟慢了10倍!去C系統(tǒng)的性能日志里面看看,

  1. 2020-09-01 15:06:59.210 [abcdefg,B->C,Dubbo-thread-1,ipB->ipC] C.facade,cost 20 ms  

啪啪啪打臉,竟然只有20ms,和平均耗時(shí)差不多。難道問題在網(wǎng)絡(luò)上?B到C之間由于丟包重傳所以到了200ms?

甩給網(wǎng)絡(luò)?

由于筆者對(duì)TCP協(xié)議還是比較了解的,tcp第一次丟包重傳是200ms,那么加上C處理的時(shí)間20ms,即220ms必須得大于200ms。而由于Nagle和DelayAck造成的tcp延遲也僅僅是40ms,兩者相加60ms遠(yuǎn)遠(yuǎn)小于200ms,所以這個(gè)200ms是丟包或者DelayAck的概率不大。

本著萬一呢的態(tài)度,畢竟下絕對(duì)的判斷往往會(huì)被打臉,看了下我們的監(jiān)控系統(tǒng),發(fā)現(xiàn)當(dāng)時(shí)流量距離網(wǎng)卡容量只有1/10左右,距離打滿網(wǎng)卡還有非常遠(yuǎn)的距離。

注意,這個(gè)監(jiān)控的是由KVM虛擬機(jī)虛擬出來的網(wǎng)卡??戳诉@個(gè)流量,筆者感覺網(wǎng)絡(luò)上問題的概率不大。

GC了?

筆者第二個(gè)想到的是GC了,但是觀察了B和C的當(dāng)時(shí)時(shí)刻的GC日志,非常正常,沒有FullGC,youngGC也在毫秒級(jí),完全不會(huì)有200ms這么長(zhǎng)。TCP重傳+雙方都youngGC?這個(gè)也太巧了點(diǎn)吧,也不是不可用。不過詳細(xì)的計(jì)算了時(shí)間點(diǎn),并納入了雙方機(jī)器的時(shí)鐘誤差后,發(fā)現(xiàn)基本不可能。

再看看其它幾筆

盡然這個(gè)問題每天有100多筆(當(dāng)然了,也不排除其中混雜了其它不同的問題),那么就試試看看其它幾筆,有沒有什么共性。這一看,發(fā)現(xiàn)個(gè)奇怪的現(xiàn)象,就是有時(shí)候是A調(diào)用B慢,有時(shí)候是B調(diào)用C慢,還有時(shí)候是E調(diào)用F慢。他們唯一的共性就是耗時(shí)變長(zhǎng)了,但是這個(gè)耗時(shí)增加的比例有5倍的,有10倍的,完全沒有規(guī)律可循。

這不禁讓筆者陷入了沉思。

尋找突破點(diǎn)

既然通用規(guī)律只有變慢,暫時(shí)無法進(jìn)一步挖掘。那么還是去B系統(tǒng)上去看看情況吧,去對(duì)應(yīng)B系統(tǒng)上故意不用grep而是用less看了下,上下掃了兩眼。突然發(fā)現(xiàn),貌似緊鄰著的幾條請(qǐng)求都很慢,而且是無差別變慢!也就是說B系統(tǒng)調(diào)用任何系統(tǒng)在這個(gè)時(shí)間點(diǎn)都有好幾倍甚至十幾倍的耗時(shí)!

終于找到了一個(gè)突破點(diǎn),B系統(tǒng)本身或者其所屬的環(huán)境應(yīng)該有問題!于是筆者用awk統(tǒng)計(jì)了下 B系統(tǒng)這個(gè)小時(shí)內(nèi)每分鐘的平均調(diào)用時(shí)長(zhǎng),用了下面這條命令:

  1. cat 性能日志 | grep '時(shí)間點(diǎn) | awk -F ' ' '{print $2, $5}' |.......| awk -F ' ' '{sum[$1]+=$3;count[$1]+=1}END{for(i in sum) {print i,sum[i]/count[i]}}'    

發(fā)現(xiàn)

  1. 15:00 20 
  2. 15:01 21 
  3. 15:02 15 
  4. 15:03 30 
  5. ....... 
  6. 15:06 172.4 
  7. 15:07 252.4 
  8. 15:08 181.4 
  9. 15:10 20 
  10. 15:10 21 
  11. 15:10 22 

在15:06-15:08這三分鐘之內(nèi),調(diào)用時(shí)間會(huì)暴漲!但奇怪的是B系統(tǒng)明明有幾十臺(tái)機(jī)器,只有這一臺(tái)在這個(gè)時(shí)間段內(nèi)會(huì)暴漲。難道這個(gè)時(shí)間有定時(shí)任務(wù)?筆者搜索了下B系統(tǒng)昨天的日志,發(fā)現(xiàn)在同樣的時(shí)間段內(nèi),還是暴漲了!再接著搜索其它調(diào)用慢的,例如E->F,發(fā)現(xiàn)他們也在15:06-15:08報(bào)錯(cuò)!于是筆者,一橫心,直接用awk算出了所有系統(tǒng)間調(diào)用慢機(jī)器白天內(nèi)的所有分鐘平均耗時(shí)(晚上的流量小不計(jì)入內(nèi)),發(fā)現(xiàn):

所有調(diào)用慢的機(jī)器,都非常巧的在每個(gè)小時(shí)06-08分鐘之內(nèi)調(diào)用慢。再觀察下慢的請(qǐng)求,發(fā)現(xiàn)他們也全部是分布在不同小時(shí)的06-08分時(shí)間段內(nèi)!

定時(shí)任務(wù)?

第一反應(yīng)是有定時(shí)任務(wù),查了下所有調(diào)用機(jī)器的crontab沒有問題。問了下對(duì)應(yīng)的開發(fā)有沒有調(diào)度,沒有調(diào)度,而且那個(gè)時(shí)間段由于耗時(shí)的原因,每秒請(qǐng)求數(shù)反而變小了。翻了下機(jī)器監(jiān)控,也都挺正常。思維陷入了僵局,突然筆者靈光一閃,我們的應(yīng)用全部是在KVM虛擬機(jī)上,會(huì)不會(huì)是宿主機(jī)出了問題。于是聯(lián)系了下SA,看看這些機(jī)器的宿主機(jī)是個(gè)什么情況。

每個(gè)變慢的機(jī)器的宿主機(jī)都有Redis!

這一看就發(fā)現(xiàn)規(guī)律了,原來變慢的機(jī)器上都和Redis共宿主機(jī)!

登陸上對(duì)應(yīng)的Redis服務(wù)器,發(fā)現(xiàn)CPU果然在那個(gè)時(shí)間點(diǎn)有尖峰。而這點(diǎn)尖峰對(duì)整個(gè)宿主機(jī)的CPU毫無影響(畢竟宿主機(jī)有64個(gè)核)。crontab -l 一下,果然有定時(shí)任務(wù),腳本名為Backup!它起始時(shí)間點(diǎn)就是從06分開始往GlusterFS盤進(jìn)行備份,從06分開始CPU使用率開始上升=>07分達(dá)到頂峰=>08分降下來,和耗時(shí)曲線完全一致!

原來Redis往Gluster盤備份占據(jù)了大量的IO操作,所以導(dǎo)致宿主機(jī)上的其它應(yīng)用做IO操作時(shí)會(huì)變得很慢,進(jìn)而導(dǎo)致但凡是這個(gè)備份時(shí)間內(nèi)系統(tǒng)間調(diào)用的平均耗時(shí)都會(huì)暴漲接近10倍,最終導(dǎo)致了高耗時(shí)的請(qǐng)求。

為什么調(diào)用請(qǐng)求超時(shí)1s的概率這么低

由于我們線上每個(gè)應(yīng)用都有幾十臺(tái)機(jī)器,而基本每次調(diào)用只有幾十毫秒。所以只有這個(gè)請(qǐng)求連續(xù)落到三個(gè)甚至多個(gè)和Redis共宿主機(jī)的系統(tǒng)里面才會(huì)導(dǎo)致請(qǐng)求超過1s,這樣才能被我們的統(tǒng)計(jì)腳本監(jiān)測(cè)到,而那些大量的正常請(qǐng)求完全拉平了平均值。

解決方案

我們將線上實(shí)時(shí)鏈路的系統(tǒng)從對(duì)應(yīng)有Redis的宿主機(jī)中遷移出來,再也沒有那個(gè)尷尬的1s了。

總結(jié)

在遇到問題,并且思路陷入僵局時(shí),可以通過一些腳本工具,例如grep以及awk或者其它一些工具對(duì)眾多日志進(jìn)行分析,不停的去尋找規(guī)律,從無序中找到有序,往往能夠產(chǎn)生意想不到的效果!

 

責(zé)任編輯:武曉燕 來源: 解Bug之路
相關(guān)推薦

2021-05-19 14:03:48

磁盤故障時(shí)

2023-01-04 18:32:31

線上服務(wù)代碼

2021-11-23 21:21:07

線上排查服務(wù)

2025-03-17 10:01:07

2019-09-10 10:31:10

JVM排查解決

2021-05-13 08:51:20

GC問題排查

2019-03-15 16:20:45

MySQL死鎖排查命令

2023-04-06 07:53:56

Redis連接問題K8s

2017-12-19 14:00:16

數(shù)據(jù)庫(kù)MySQL死鎖排查

2020-11-16 07:19:17

線上函數(shù)性能

2021-03-29 12:35:04

Kubernetes環(huán)境TCP

2020-08-24 07:34:39

網(wǎng)絡(luò)超時(shí)請(qǐng)求

2021-04-13 08:54:28

dubbo線程池事故排查

2022-11-16 08:00:00

雪花算法原理

2022-12-17 19:49:37

GCJVM故障

2024-03-11 08:51:08

JVMSWAP內(nèi)存

2022-02-08 17:17:27

內(nèi)存泄漏排查

2019-04-15 13:15:12

數(shù)據(jù)庫(kù)MySQL死鎖

2020-06-12 13:26:03

線程池故障日志

2024-10-15 09:27:36

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产在线看片| 亚洲日韩视频| 色诱亚洲精品久久久久久| 中日韩在线视频| 日韩高清在线免费观看| 欧美精品一区二区三区蜜臀| 免费yellow网站| 国产酒店精品激情| 久久青青草综合| 99国产**精品****| 久久久亚洲影院| 在线日本欧美| 欧美大片一区二区| 成年人视频在线观看免费| 中文字幕中文在线不卡住| www.国产亚洲| 久久精品系列| 999国产视频| 日本久久黄色| 91国产美女在线观看| 久久久久久久性潮| 亚洲精品美女在线观看| av成人手机在线| 欧美性猛xxx| 女人黄色片免费| 国产精品久久久久一区二区三区 | 亚洲国产精品中文| 国产女人在线观看| 黄网动漫久久久| 超碰在线一区二区三区| 国产精品美女久久福利网站| 午夜精品久久久内射近拍高清| 国产激情一区二区三区四区| 午夜精品一区二区在线观看| 在线播放一区| 国模精品娜娜一二三区| 91精品国产视频| 91在线精品播放| 欧美另类综合| 国产精品国色综合久久| 国产精品啊啊啊| 国产精品久久精品国产| 国产主播一区| 久久久久高清| 日韩1区2区日韩1区2区| 在线视频欧美一区| 成人性生交大片| 不卡影院一区二区| 国产精品久久久久久久第一福利 | 51视频国产精品一区二区| **爰片久久毛片| 高清视频欧美一级| 亚欧洲精品视频在线观看| 日韩网站在线观看| 99久久这里有精品| 国a精品视频大全| 国产欧美日韩在线观看视频| 国产精品video| 国产精品国产三级国产在线观看| 97se国产在线视频| 蘑菇福利视频一区播放| 男女啪啪的视频| caoporn国产一区二区| 亚洲成人天堂网| 激情av一区二区| 亚洲男同gay网站| 中文字幕亚洲综合| 亚洲三级网址| 国产伦精品一区二区三区高清| 蜜桃久久av一区| 国产欧美在线一区| 亚洲综合色视频| 麻豆av在线导航| 亚洲网站在线观看| 在线成人动漫av| 久久精品第九区免费观看| 国产精品小仙女| 69ww免费视频播放器| 精品视频一区二区三区免费| 都市激情亚洲综合| 人人澡人人澡人人看欧美| 欧美日韩国产一区精品一区| 91xxx视频| 亚洲精品国产a| 污网站在线免费看| 九色91av视频| 一本一本久久| 免费大片在线观看| 欧美午夜影院一区| 国产69精品久久| 亚洲在线免费视频| av中文字幕亚洲| 天堂v视频永久在线播放| 精品网站999www| 波多野结衣在线播放一区| 一级特黄录像免费播放全99| 国产精品久久久一本精品 | 成人黄色小视频| 亚洲狠狠婷婷综合久久久| 国产精品乱人伦| 性网站在线观看| 欧美在线视频导航| 日韩**一区毛片| 国产青青视频| 亚洲精品在线91| 四季av一区二区凹凸精品| 狠狠精品干练久久久无码中文字幕| 一卡二卡欧美日韩| 桃子视频成人app| 99精品国产高清在线观看| 96av麻豆蜜桃一区二区| 第三区美女视频在线| 久久久久久综合网天天| 日本欧美在线观看| 天堂av网在线| 久久久久五月天| 国产精品一区二区在线看| avtt亚洲| 国产精品激情av在线播放| av资源站一区| 国产乱码精品一区二三赶尸艳谈| 91成人伦理在线电影| 国产精品少妇自拍| 欧洲精品一区二区三区| 久久精品国产精品青草色艺| 亚洲欧美偷拍卡通变态| 青青在线精品| 在线视频一区观看| 91超碰这里只有精品国产| 国产一区毛片| 久久综合伊人77777麻豆最新章节| 精品国产一区二区三区久久久蜜月 | 717成人午夜免费福利电影| 香蕉久久精品| 欧美日韩亚洲一| 亚洲女人天堂av| 久久最新视频| 69视频在线观看| 亚洲综合成人婷婷小说| 亚洲一区二区偷拍精品| 好吊妞视频这里有精品| 国产成人在线免费看| 国产午夜精品理论片a级探花| 午夜在线播放视频欧美| 日本在线一二三| 国产精品美女久久久免费| 国产亲近乱来精品视频| 午夜不卡一区| 国产 福利 在线| 在线精品国产欧美| 久草中文综合在线| 蜜臀av在线播放| 日产精品久久久一区二区| 8x8x8国产精品| 亚洲欧美春色| 七七成人影院| 欧美国产视频在线观看| 7777精品伊人久久久大香线蕉完整版| 国内精品99| 日本在线免费播放| 你懂的视频在线一区二区| 欧美一区二区三区四区久久| 免费一级欧美片在线播放| 精品日韩av| 免费成人深夜夜行网站视频| 亚洲人午夜精品免费| 成人黄色a**站在线观看| 日韩欧美精品一区二区综合视频| 免费国产a级片| 69久久夜色精品国产69| 亚洲少妇中出一区| 欧美第一精品| 狠狠色伊人亚洲综合网站l| 狠狠色狠狠色综合人人| 欧美成人高清电影在线| 国产91精品一区二区麻豆网站| 欧美综合影院| 男男做性免费视频网| 国产精品免费在线| 亚洲国产另类 国产精品国产免费| 久久99精品久久久久婷婷| 久久精品超碰| 亚洲精品一区二区| 激情久久av| 在线成人一区二区| 亚洲丝袜制服诱惑| 欧美深夜福利| 自由日本语热亚洲人| 北条麻妃av高潮尖叫在线观看| 国产精品777| 欧美电影一区二区| 国产成人av一区| 久久不卡国产精品一区二区| 日韩免费啪啪| 日日摸日日碰夜夜爽无码| 日本精品性网站在线观看| 欧美一区二区视频在线观看2020| 丁香六月久久综合狠狠色| 国产videos久久| av影院在线|