<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          修正版 | QPS過(guò)萬(wàn),Redis大量連接超時(shí)怎么解決?

          共 1904字,需瀏覽 4分鐘

           ·

          2021-04-02 15:28

          之前負(fù)責(zé)的一個(gè)服務(wù)總是在高峰時(shí)刻和壓測(cè)發(fā)生大量的redis連接超時(shí)的異常redis.clients.jedis.exceptions.JedisConnectionException,根據(jù)原有的業(yè)務(wù)規(guī)則,首先會(huì)從數(shù)據(jù)庫(kù)查詢,然后緩存到redis中,超時(shí)時(shí)間設(shè)置為3分鐘。

          并且由于業(yè)務(wù)的特性,本身未做降級(jí)、限流等處理措施,而在巔峰的QPS基本上快達(dá)到20000的樣子,雖然這個(gè)現(xiàn)象只是單純的一個(gè)異常,并不會(huì)導(dǎo)致整個(gè)主鏈路的流程不可用,但是我們還是要找出問(wèn)題的原因并且解決。

          首先我們找到負(fù)責(zé)Redis同學(xué)排查,他們告訴我Redis現(xiàn)在很穩(wěn)定,沒(méi)有問(wèn)題,以前現(xiàn)在未來(lái)都不會(huì)出問(wèn)題,出了問(wèn)題肯定是你們自己的問(wèn)題。

          ... ...

          說(shuō)的好有道理,我竟無(wú)力反駁,真是讓人兩個(gè)頭一個(gè)大。

          這樣的話,我們就只能去找找自身的原因了。

          排查思路

          查看異常分布

          首先根據(jù)經(jīng)驗(yàn),我們看看自己的服務(wù)器的情況,看下異常到底出現(xiàn)在哪些機(jī)器,通過(guò)監(jiān)控切換到單機(jī)維度,看看異常是否均勻分布,如果分布不均勻,只是少量的host特別高,基本可以定位到出現(xiàn)問(wèn)題的機(jī)器。

          誒,這就很舒服了,這一下子就找到了問(wèn)題,只有幾臺(tái)機(jī)器異常非常高。

          不過(guò)不能這樣,我們繼續(xù)說(shuō)排查思路......

          Redis情況

          再次按照經(jīng)驗(yàn),雖然負(fù)責(zé)redis的同學(xué)說(shuō)redis賊穩(wěn)定巴拉巴拉,但是我們本著懷疑的態(tài)度,不能太相信他們說(shuō)的話,這點(diǎn)很重要,特別是工作中,同學(xué)們,不要?jiǎng)e人說(shuō)啥你就信啥,要本著柯南的精神,發(fā)生命案的時(shí)候每個(gè)人都是犯罪嫌疑人,當(dāng)然你要排除自己,堅(jiān)定不移的相信這肯定不是我的鍋!

          好了,我們看看redis集群是否有節(jié)點(diǎn)負(fù)載過(guò)高,比如以常規(guī)經(jīng)驗(yàn)看來(lái)的80%可以作為一個(gè)臨界值。

          如果有一個(gè)或少量節(jié)點(diǎn)超過(guò),則說(shuō)明可能存在熱key問(wèn)題,如果大部分節(jié)點(diǎn)都超過(guò),則說(shuō)明存在redis整體壓力大問(wèn)題。

          另外可以看看是否有慢請(qǐng)求的情況,如果有慢請(qǐng)求,并且時(shí)間發(fā)生問(wèn)題的時(shí)間匹配,那么可能是存在大key的問(wèn)題。

          嗯... ...

          redis同學(xué)說(shuō)的沒(méi)錯(cuò),redis穩(wěn)如老狗。

          CPU

          我們假設(shè)自己還是很無(wú)助,還是沒(méi)發(fā)現(xiàn)問(wèn)題在哪兒,別急,接著找找別人的原因,看看CPU咋樣,可能運(yùn)維偷偷滴給我們把機(jī)器配置給整差了。

          我們看看CPU使用率多高,是不是超過(guò)80%了,還是根據(jù)經(jīng)驗(yàn),我們之前的服務(wù)一般高峰能達(dá)到60%就不錯(cuò)了。

          再看看CPU是不是存在限流,或者存在密集的限流、長(zhǎng)時(shí)間的限流。

          如果存在這些現(xiàn)象,應(yīng)該就是運(yùn)維的鍋,給我們機(jī)器資源不夠啊

          GC停頓

          得嘞,運(yùn)維這次沒(méi)作死。

          再看看GC咋樣。

          頻繁的GC、GC耗時(shí)過(guò)長(zhǎng)都會(huì)讓線程無(wú)法及時(shí)讀取redis響應(yīng)。

          這個(gè)數(shù)字怎么判斷呢?

          通常,我們可以這樣計(jì)算,再次按照我們一塌糊涂的經(jīng)驗(yàn),每分鐘GC總時(shí)長(zhǎng)/60s/每分鐘GC個(gè)數(shù),如果達(dá)到ms級(jí)了,對(duì)redis讀寫(xiě)延遲的影響就會(huì)很明顯。

          為了穩(wěn)一手,我們也要對(duì)比下和歷史監(jiān)控級(jí)別是否差不多一致。

          好了,打擾了,我們繼續(xù)。

          網(wǎng)絡(luò)

          網(wǎng)絡(luò)這塊我們主要看TCP重傳率,這個(gè)基本在大點(diǎn)的公司都有這塊監(jiān)控。

          TCP重傳率=單位時(shí)間內(nèi)TCP重傳包數(shù)量/TCP發(fā)包總數(shù)

          我們可以把TCP重傳率視為網(wǎng)絡(luò)質(zhì)量和服務(wù)器穩(wěn)定性的一個(gè)只要衡量指標(biāo)。

          還是根據(jù)我們的經(jīng)驗(yàn),這個(gè)TCP重傳率越低越好,越低代表我們的網(wǎng)絡(luò)越好,如果TCP重傳率保持在0.02%(以自己的實(shí)際情況為準(zhǔn))以上,或者突增,就可以懷疑是不是網(wǎng)絡(luò)問(wèn)題了。

          比如這張圖一樣,要是和心電圖一樣,基本上網(wǎng)絡(luò)問(wèn)題就沒(méi)跑了。

          容器宿主機(jī)

          有一些機(jī)器有可能是虛擬機(jī),CPU的監(jiān)控指標(biāo)可能不準(zhǔn)確,特別是對(duì)于IO密集型的情況會(huì)有較大差異??梢酝ㄓ闷渌侄蝸?lái)查詢宿主機(jī)的情況。

          最后

          根據(jù)一系列的騷操作,我們根據(jù)定位到的機(jī)器然后排查了一堆情況,最終定位到是網(wǎng)絡(luò)問(wèn)題,有單獨(dú)的幾臺(tái)機(jī)器在高峰時(shí)期TCP重傳率賊高,最后根據(jù)運(yùn)維提供的解決方案:【重啟有問(wèn)題的機(jī)器】,我們很順利的就解決了這個(gè)問(wèn)題。

          但是,這畢竟是治標(biāo)不治本的辦法,最終怎么解決的?

          在我的另外一篇文章我有寫(xiě)到了,沒(méi)人告訴過(guò)你更復(fù)雜的緩存穿透怎么解決

          ·················END·················



          往期推薦

          長(zhǎng)篇連載,人生30年(五):創(chuàng)業(yè)虧錢(qián),炒幣3月賺百萬(wàn)

          阿里二面:什么是mmap?

          長(zhǎng)篇連載,人生30年(六):大結(jié)局!

          《我想進(jìn)大廠》之分布式鎖奪命連環(huán)9問(wèn) | 大理版人在囧途

          真實(shí)字節(jié)二面:什么是偽共享?


          瀏覽 27
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色一级免费视屏 | 请问谁有三级网址 | 乱伦视频网址 | 成人免费视频 国产免费麻豆。 | 视频一区二区三区四区久久 |