91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis為什么會出現阻塞

發布時間:2020-06-22 09:43:38 來源:億速云 閱讀:426 作者:Leah 欄目:關系型數據庫

Redis為什么會出現阻塞?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

發現阻塞

線上應用服務最先感知到,可在應用方加入異常統計并通過郵件、短信、微信報警。

借助日志系統,統計異常和觸發報警邏輯

借助Redis監控系統發現阻塞問題,觸發報警。推薦CacheCloud系統。

內在原因

API或數據結構使用不合理

對于高并發場景,避免在大對象上執行算法復雜度超過O(n)O(n)的命令。

發現慢查詢:slowlog get {n}

發現大對象:redis-cli -h{ip} -p{port} bigkeys

CPU飽和

CPU飽和指redis把單核CPU跑到100%。

top命令查看redis進程CPU使用率

redis-cli -h{ip} -p{port} –stat獲取當前redis使用情況,判斷并發是否達到極限

info commandstats 分析命令不合理開銷時間,可能過度內存優化

持久化阻塞

1、fork阻塞

發生在RDB或AOF重寫時,redis主線程調用fork產生子進程完成持久化文件重寫

使用info stats命令獲取lastest_fork_usec指標,表示redis最近一次fork操作耗時

2、AOF刷盤阻塞

開啟AOF,文件刷盤一般每秒一次,硬盤壓力過大時,fsync需要等待寫入完成

查看redis日志或info persistence統計中的aof_delayed_fsync指標

可使用iotop差可能哪個進程消耗過多的硬盤資源

3、HugePage寫操作阻塞

對于開啟Transparent HugePages的操作系統,每次寫命令引起的復制內存頁單位由4KB變為2MB

會拖慢寫操作的執行時間,導致大量寫操作慢查詢

外在原因

CPU競爭

1、進程競爭:redis是典型的CPU密集型應用。使用top、sar命令定位CPU消耗的時間點和進程

2、綁定CPU:常見優化是把redis進程綁定到CPU上,較低CPU上下文切換開銷,如果fork子進程做了CPU綁定,則父子進程存在激烈的CPU競爭,極大影響redis穩定性。

內存交換

如果操作系統把redis使用的內存換出到硬盤上,會導致發生交換后的redis性能急劇下降。

識別redis內存交換的檢查方法:

1、查詢redis進程號

redis-cli info server | grep process_id

2、根據進程號查詢內存交換信息

cat /proc/{process_id}/smaps | grep Swap

如果交換量都是0KB或者個別4KB,是正常現象。

預防內存交換:

1、保證機器充足的可用內存

2、確保所有redis示例設置最大可用內存(maxmemory),防止極端情況下redis內存不可控的增長

3、降低系統使用swap優先級,如 echo 10>/proc/sys/vm/swappiness

網絡問題

1、連接拒絕

網絡閃斷:一般在網絡割接或帶寬耗盡的情況

redis連接拒絕:

連接數大于maxclients時拒絕新的連接進入,info stats的rejected_connections指標

客戶端訪問redis盡量采用NIO長連接或連接池的方式

redis用于大量分布式節點訪問且生命周期較短的場景(如Map/Reduce)時,建議設置tcp-keepalive和timeout參數讓redis主動檢查和關閉無效連接

連接溢出:

進程限制:進程可打開最大文件數控制,ulimit -n,通常1024,大量連接的redis需要增大該值

backlog隊列溢出:系統對于特定端口tcp連接使用backlog隊列保存,redis默認511,系統backlog默認128,線上可使用cron定時執行netstat -s | grep overflowed統計

2、網絡延遲

測量機器之間網絡延遲

redis-cli -h{ip} -p{port} –latency
redis-cli -h{ip} -p{port} –latency-history 默認15秒完成一行統計,-i控制采樣時間
redis-cli -h{ip} -p{port} –latency-dist 統計圖展示,每1秒采樣一次

3、網卡軟中斷

單個網卡隊列只能使用一個CPU,高并發下網卡數據交互都集中在同一個CPU,導致無法充分利用多核CPU的情況。

一般出現在網絡高流量吞吐的場景

關于Redis出現阻塞的原因就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

偏关县| 康保县| 鄄城县| 外汇| 嘉祥县| 银川市| 高尔夫| 淮南市| 丹江口市| 九江县| 商河县| 仙游县| 安图县| 东明县| 康保县| 贺州市| 壶关县| 项城市| 山西省| 咸阳市| 祁连县| 伊金霍洛旗| 高州市| 台南市| 宽城| 庆元县| 东兰县| 揭阳市| 饶阳县| 珠海市| 邛崃市| 泾阳县| 叶城县| 敦化市| 合阳县| 腾冲县| 綦江县| 永川市| 鱼台县| 托克托县| 遂宁市|