好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Redis監(jiān)控技巧總結(jié)

Redis監(jiān)控技巧總結(jié)

熱門標(biāo)簽:曲阜地圖標(biāo)注app 4s店如何在百度地圖標(biāo)注 天津人工電銷機(jī)器人費(fèi)用 開封400電話辦理價格 地圖標(biāo)注小區(qū)項(xiàng)目入駐 內(nèi)蒙古電信外呼系統(tǒng) 哪個地圖標(biāo)注更清晰 凱立德劇院地圖標(biāo)注 漳州外呼系統(tǒng)怎么樣

Redis 監(jiān)控最直接的方法當(dāng)然就是使用系統(tǒng)提供的 info 命令來做了,你只需要執(zhí)行下面一條命令,就能獲得 Redis 系統(tǒng)的狀態(tài)報告。

redis-cli info

內(nèi)存使用

如果 Redis 使用的內(nèi)存超出了可用的物理內(nèi)存大小,那么 Redis 很可能系統(tǒng)會被OOM Killer殺掉。針對這一點(diǎn),你可以通過 info 命令對used_memory和used_memory_peak進(jìn)行監(jiān)控,為使用內(nèi)存量設(shè)定閥值,并設(shè)定相應(yīng)的報警機(jī)制。當(dāng)然,報警只是手段,重要的是你得預(yù)先計劃好,當(dāng)內(nèi)存使用量過大后,你應(yīng)該做些什么,是清除一些沒用的冷數(shù)據(jù),還是把 Redis 遷移到更強(qiáng)大的機(jī)器上去。

持久化

如果因?yàn)槟愕臋C(jī)器或 Redis 本身的問題導(dǎo)致 Redis 崩潰了,那么你唯一的救命稻草可能就是 dump 出來的 rdb文件了,所以,對 Redis dump 文件進(jìn)行監(jiān)控也是很重要的。你可以通過對rdb_last_save_time進(jìn)行監(jiān)控,了解你最近一次 dump 數(shù)據(jù)操作的時間,還可以通過對rdb_changes_since_last_save進(jìn)行監(jiān)控來知識如果這時候出現(xiàn)故障,你會丟失多少數(shù)據(jù)。

主從復(fù)制

如果你設(shè)置了主從復(fù)制模式,那么你最好對復(fù)制的情況是否正常做一些監(jiān)控,主要是對 info 輸出中的master_link_status進(jìn)行監(jiān)控,如果這個值是 up,那么說明同步正常,如果是 down,那么你就要注意一下輸出的其它一些診斷信息了。比如下面這些:


復(fù)制代碼
代碼如下:

role:slave
master_host:192.168.1.128
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
master_link_down_since_seconds:1356900595


Fork 性能

當(dāng) Redis 持久化數(shù)據(jù)到磁盤上時,它會進(jìn)行一次 fork 操作,通過 fork 對內(nèi)存的 copy on write 機(jī)制最廉價的實(shí)現(xiàn)內(nèi)存鏡像。但是雖然內(nèi)存是 copy on write 的,但是虛擬內(nèi)存表是在 fork 的瞬間就需要分配,所以 fork 會造成主線程短時間的卡頓(停止所有讀寫操作),這個卡頓時間和當(dāng)前 Redis 的內(nèi)存使用量有關(guān)。通常 GB 量級的 Redis 進(jìn)行 fork 操作的時間在毫秒級。你可以通過對 info 輸出的latest_fork_usec進(jìn)行監(jiān)控來了解最近一次 fork 操作導(dǎo)致了多少時間的卡頓。

配置一致

Redis 支持使用 CONFIG SET操作來實(shí)現(xiàn)運(yùn)行實(shí)的配置修改,這很方便,但同時也會導(dǎo)致一個問題。就是通過這個命令動態(tài)修改的配置,是不會同步到你的配置文件中去的。所以當(dāng)你因?yàn)槟承┰蛑貑?Redis 時,你使用 CONFIG SET 做的配置修改就會丟失掉,所以我們最好保證在每次使用 CONFIG SET 修改配置時,也把配置文件一起相應(yīng)地改掉。為了防止人為的失誤,所以我們最好對配置進(jìn)行監(jiān)控,使用CONFIG GET命令來獲取當(dāng)前運(yùn)行時的配置,并與 redis.conf 中的配置值進(jìn)行對比,如果發(fā)現(xiàn)兩邊對不上,就啟動報警。

慢日志

Redis 提供了SLOWLOG指令來獲取最近的慢日志,Redis 的慢日志是直接存在內(nèi)存中的,所以它的慢日志開銷并不大,在實(shí)際應(yīng)用中,我們通過 crontab 任務(wù)執(zhí)行 SLOWLOG 命令來獲取慢日志,然后將慢日志存到文件中,并用Kibana生成實(shí)時的性能圖表來實(shí)現(xiàn)性能監(jiān)控。

值得一提的是,Redis 的慢日志記錄的時間,僅僅包括 Redis 自身對一條命令的執(zhí)行時間,不包括 IO 的時間,比如接收客戶端數(shù)據(jù)和發(fā)送客戶端數(shù)據(jù)這些時間。另外,Redis 的慢日志和其它數(shù)據(jù)庫的慢日志有一點(diǎn)不同,其它數(shù)據(jù)庫偶爾出現(xiàn) 100ms 的慢日志可能都比較正常,因?yàn)橐话銛?shù)據(jù)庫都是多線程并發(fā)執(zhí)行,某個線程執(zhí)行某個命令的性能可能并不能代表整體性能,但是對 Redis 來說,它是單線程的,一旦出現(xiàn)慢日志,可能就需要馬上得到重視,最好去查一下具體是什么原因了。

監(jiān)控服務(wù)

-Sentinel
Sentinel是 Redis 自帶的工具,它可以對 Redis 主從復(fù)制進(jìn)行監(jiān)控,并實(shí)現(xiàn)主掛掉之后的自動故障轉(zhuǎn)移。在轉(zhuǎn)移的過程中,它還可以被配置去執(zhí)行一個用戶自定義的腳本,在腳本中我們就能夠?qū)崿F(xiàn)報警通知等功能。

-Redis Live
Redis Live是一個更通用的 Redis 監(jiān)控方案,它的原理是定時在 Redis 上執(zhí)行MONITOR命令,來獲取當(dāng)前 Redis 當(dāng)前正在執(zhí)行的命令,并通過統(tǒng)計分析,生成web頁面的可視化分析報表。

-Redis Faina
Redis Faina是由著名的圖片分享應(yīng)用 instagram 開發(fā)的 Redis 監(jiān)控服務(wù),其原理和 Redis Live 類似,都是對通過MONITOR來做的。

數(shù)據(jù)分布

弄清 Redis 中數(shù)據(jù)存儲分布是一件很難的是,比如你想知道哪類型的 key 值占用內(nèi)存最多。下面是一些工具,可以幫助你對 Redis 的數(shù)據(jù)集進(jìn)行分析。

-Redis-sampler
Redis-sampler是 Redis 作者開發(fā)的工具,它通過采用的方法,能夠讓你了解到當(dāng)前 Redis 中的數(shù)據(jù)的大致類型,數(shù)據(jù)及分布狀況。

-Redis-audit
Redis-audit是一個腳本,通過它,我們可以知道每一類 key 對內(nèi)存的使用量。它可以提供的數(shù)據(jù)有:某一類 key 值的訪問頻率如何,有多少值設(shè)置了過期時間,某一類 key 值使用內(nèi)存的大小,這很方便讓我們能排查哪些 key 不常用或者壓根不用。

-Redis-rdb-tools
Redis-rdb-tools跟 Redis-audit 功能類似,不同的是它是通過對 rdb 文件進(jìn)行分析來取得統(tǒng)計數(shù)據(jù)的。

原文鏈接:Redis Masterclass – Part 2, Monitoring

標(biāo)簽:黔南 南京 陽泉 綿陽 莆田 開封 武漢 南陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Redis監(jiān)控技巧總結(jié)》,本文關(guān)鍵詞  Redis,監(jiān)控,技巧,總結(jié),Redis,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Redis監(jiān)控技巧總結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Redis監(jiān)控技巧總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章