共計(jì) 1206 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通
今天就跟大家聊聊有關(guān) Redis 中出現(xiàn)大量連接超時(shí)如何解決,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
排查思路查看異常分布
首先根據(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 讀寫延遲的影響就會(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)題了。
看完上述內(nèi)容,你們對(duì) Redis 中出現(xiàn)大量連接超時(shí)如何解決有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝大家的支持。
向 AI 問(wèn)一下細(xì)節(jié)