當前位置:首頁 > 公眾號精選 > 架構師社區(qū)
[導讀]周一早上剛上班,突然大量用戶反饋進入網(wǎng)頁很慢,登錄服務器一看,Redis調用時間嚴重超時,這樣高速的緩存反而變成了短板,由于數(shù)據(jù)一直沒有返回,導致了請求響應變慢。

來源:https://www.sevenyuan.cn/


周一早上剛上班,突然大量用戶反饋進入網(wǎng)頁很慢,登錄服務器一看,Redis調用時間嚴重超時,這樣高速的緩存反而變成了短板,由于數(shù)據(jù)一直沒有返回,導致了請求響應變慢。

網(wǎng)頁監(jiān)控

通過阿里的 Grafana 監(jiān)控,服務器的 CPU 負載、內存、網(wǎng)絡輸入輸出都挺正常的,所以肯定是 Redis 出現(xiàn)了問題。

我們應用使用的是單節(jié)點的 32M 16GB 的阿里云 Redis,登錄網(wǎng)頁監(jiān)控看性能監(jiān)控,發(fā)現(xiàn) CPU 使用情況飆升到100%?。。?/span>

QPS 雖然從 1000 多升到 6000,但是遠遠低于極限值,連接數(shù)量從 0 升到 3000,也是遠遠低于極限值(可能用戶剛上班,開始有請求,然后響應延遲,導致命令隊列數(shù)量過多,打開很多連接)。

臨時方案:先租用一臺新的 Redis 服務器,更換應用服務器的 Redis 配置,重啟應用,避免影響更多用戶。

然后我們繼續(xù)跟蹤 Redis 的具體情況。

服務器命令監(jiān)控

登錄 Redis-cli,通過 info 命令查看服務器狀態(tài)和命令統(tǒng)計,祥哥總結了兩點異常點:

查詢 redis 慢指令 slowlog,排行前十的指令均為keys *,并且耗時嚴重,在當前業(yè)務流量下執(zhí)行keys*,一定會阻塞業(yè)務,導致查詢慢,cpu 高的。值得注意的是應用層面沒有開放keys *接口,不排查有后臺人為或后臺程序觸發(fā)該指令。

查看 redis 指令執(zhí)行情況,排除exec,flushall等指令,業(yè)務使用指令中,耗時嚴重的有 setnx 有7.5千萬次調用平均耗時 6s,setex 有8.4千萬次調用平均耗時7.33s,del 有2.6億次調用平均耗時69s,hmset 有1億次調用平均耗時 64s,hmget 有6.8千萬次調用平均耗時 9s,hgetall 有14億次調用平均耗時 205s,keys 有2千萬次調用平均耗時 3740s。

通常而言,這些指令耗時與 value 大小呈正比,所以可以排查這些指令相關的數(shù)據(jù)近期有沒有較大增長?;蛘呓谟袥]有業(yè)務改造,會頻繁使用上述指令,也會造成 cpu 高。

通過 info commandstats 可以查看 Redis 命令統(tǒng)計信息,其中命令格式是

cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX
調用次數(shù)、耗費CPU時間、每個命令平均耗費CPU(單位為微秒)

通過 slowlog 命令查看慢命令(默認超過 10ms 就會被記錄到日志,只會記錄其命令執(zhí)行的時間,不包含 IO 往返操作,也不記錄單由網(wǎng)絡延遲引起的響應慢)

(當時也忘了截圖,所以就介紹一下 slowlog 怎么看)

xxxxx> slowlog get 10
 3) 1) (integer) 411           
    2) (integer) 1545386469     
    3) (integer) 232663          
    4) 1) "keys" 2) "mecury:*" 

圖中各字段表示的是:

  • 1=日志的唯一標識符
  • 2=命令的執(zhí)行時間點,以UNIX時間戳表示
  • 3=查詢命令執(zhí)行時間,以微妙為單位,中的是230ms
  • 4=執(zhí)行的命令,以數(shù)組的形式排列。完整的命令是 keys mucury:*

所以通過這些參數(shù),基本可以確定,是突然有大量的keys *命令導致CPU負載升高,導致響應延遲,問題我們應用中沒有開放keys *命令Σ(o?д?o?)

最后將這些統(tǒng)計結果和慢命令發(fā)到研發(fā)群,發(fā)現(xiàn)是別的應用配置配成了我們的Redis,然后他們有個業(yè)務場景是爬數(shù)據(jù),突然涌入大量的調用,不斷的keys *,導致我們的Redis不堪重負,于是將配置修改正確,不再調用我們的Redis。

總結

  • Redis 抖動可以先看網(wǎng)頁監(jiān)控(阿里云做的真好?。?/span>
  • 通過命令查看 Redis 指令狀態(tài)和慢命令的情況
  • 考慮優(yōu)化 Redis 在代碼中的使用情況
  • 如果流量繼續(xù)上升,需要考慮一下升級了=-=

免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉