新聞中心
最近發(fā)現(xiàn)了一個令人煩惱的問題:我們的Redis每七小時左右都會“卡死”,導致我們的應用無法正常使用。我們找了很久,最終發(fā)現(xiàn)了問題的原因,并進行了解決。本文將介紹我們的排查過程,并分享一些排查技巧。

目前創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、綿陽服務器托管、企業(yè)網(wǎng)站設計、長寧網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
我們檢查了Redis進程和服務器負載。我們發(fā)現(xiàn)Redis進程沒有問題,但是服務器負載過高,特別是在Redis被卡死的幾個小時內(nèi)。這提示我們可能是Redis的I/O負載過大,導致了Redis掛起。
于是,我們開始尋找Redis的I/O負載來源。我們遍歷了Redis的配置文件,并檢查了每個設置的可能性。最終,我們發(fā)現(xiàn)了一個名為“save”的配置,這個配置指定了Redis的數(shù)據(jù)快照周期。默認情況下,Redis每秒鐘會自動執(zhí)行一次數(shù)據(jù)快照,以保證數(shù)據(jù)不丟失。然而,由于我們的配置不正確,Redis每七小時就會進行一次全量數(shù)據(jù)快照,這將導致Redis處理大量的I/O請求,使服務卡死。
我們的解決方案很簡單:將“save”的配置修改為每14小時執(zhí)行一次全量數(shù)據(jù)快照,只保留每秒鐘自動快照的配置。這樣做有兩個好處:減少了Redis的I/O負載,避免Redis被卡死;減少了Redis每日進行全量數(shù)據(jù)快照的次數(shù),提升了Redis的性能。
我們考慮如何避免這個問題再次發(fā)生。我們首先增加了自動化工具來監(jiān)控Redis的I/O負載和服務器負載,以及定期檢查Redis的配置文件。如果Redis配置了其他可能導致I/O負載異常的參數(shù),我們會及時進行調(diào)整。這樣做可以在第一時間發(fā)現(xiàn)問題并進行解決,避免服務的中斷。
總結起來,Redis每七小時“卡死”這個問題的解決步驟如下:
1. 檢查Redis進程和服務器負載;
2. 尋找Redis的I/O負載來源;
3. 修改Redis的數(shù)據(jù)快照配置;
4. 增加自動化工具來監(jiān)控Redis和服務器負載,并定期檢查Redis的配置文件;
5. 避免Redis配置其他可能導致I/O負載異常的參數(shù)。
我們分享一下我們修改“save”配置的代碼,供參考:
save 900 1 # 每900秒鐘,如果至少有1個 key 發(fā)生變化,就執(zhí)行快照
save 36000 1000 # 每36000秒鐘,如果至少有1000個 key 發(fā)生變化,就執(zhí)行快照
將“save”配置改為以下代碼即可:
save 900 1 # 每900秒鐘,如果至少有1個 key 發(fā)生變化,就執(zhí)行快照
以上就是我們排查Redis每七小時“卡死”問題的過程與解決方案。希望本文能對大家有所幫助。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
新聞標題:Redis每7小時卡死排查大作業(yè)(redis每隔7小時卡死)
URL鏈接:http://m.fisionsoft.com.cn/article/cccddgc.html


咨詢
建站咨詢
