小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Redis幾個(gè)重要的健康指標(biāo)

 airen89 2019-01-04
  • 存活情況

所有指標(biāo)中最重要的當(dāng)然是檢查redis是否還活著,可以通過命令PING的響應(yīng)是否是PONG來判斷。

  • 連接數(shù)

連接的客戶端數(shù)量,可通過命令src/redis-cli info Clients | grep connected_clients得到,這個(gè)值跟使用redis的服務(wù)的連接池配置關(guān)系比較大,所以在監(jiān)控這個(gè)字段的值時(shí)需要注意。另外這個(gè)值也不能太大,建議不要超過5000,如果太大可能是redis處理太慢,那么需要排除問題找出原因。

另外還有一個(gè)拒絕連接數(shù)(rejected_connections)也需要關(guān)注,這個(gè)值理想狀態(tài)是0。如果大于0,說明創(chuàng)建的連接數(shù)超過了maxclients,需要排查原因。是redis連接池配置不合理還是連接這個(gè)redis實(shí)例的服務(wù)過多等。

  • 阻塞客戶端數(shù)量

blocked_clients,一般是執(zhí)行了list數(shù)據(jù)類型的BLPOP或者BRPOP命令引起的,可通過命令src/redis-cli info Clients | grep blocked_clients得到,很明顯,這個(gè)值最好應(yīng)該為0。

  • 使用內(nèi)存峰值

監(jiān)控redis使用內(nèi)存的峰值,我們都知道Redis可以通過命令config set maxmemory 10737418240設(shè)置允許使用的最大內(nèi)存(強(qiáng)烈建議不要超過20G),為了防止發(fā)生swap導(dǎo)致Redis性能驟降,甚至由于使用內(nèi)存超標(biāo)導(dǎo)致被系統(tǒng)kill,建議used_memory_peak的值與maxmemory的值有個(gè)安全區(qū)間,例如1G,那么used_memory_peak的值不能超過9663676416(9G)。另外,我們還可以監(jiān)控maxmemory不能少于多少G,比如5G。因?yàn)槲覀円郧吧a(chǎn)環(huán)境出過這樣的問題,運(yùn)維不小心把10G配置成了1G,從而導(dǎo)致服務(wù)器有足夠內(nèi)存卻不能使用的悲劇。


  • 內(nèi)存碎片率

mem_fragmentation_ratio=used_memory_rss/used_memory,這也是一個(gè)非常需要關(guān)心的指標(biāo)。如果是redis4.0之前的版本,這個(gè)問題除了重啟也沒什么很好的優(yōu)化辦法。而redis4.0有一個(gè)主要特性就是優(yōu)化內(nèi)存碎片率問題(Memory de-fragmentation)。在redis.conf配置文件中有介紹即ACTIVE DEFRAGMENTATION:碎片整理允許Redis壓縮內(nèi)存空間,從而回收內(nèi)存。這個(gè)特性默認(rèn)是關(guān)閉的,可以通過命令CONFIG SET activedefrag yes熱啟動(dòng)這個(gè)特性。

  1. 當(dāng)這個(gè)值大于1時(shí),表示分配的內(nèi)存超過實(shí)際使用的內(nèi)存,數(shù)值越大,碎片率越嚴(yán)重。

  2. 當(dāng)這個(gè)值小于1時(shí),表示發(fā)生了swap,即可用內(nèi)存不夠。

另外需要注意的是,當(dāng)內(nèi)存使用量(used_memory)很小的時(shí)候,這個(gè)值參考價(jià)值不大。所以,建議used_memory至少1G以上才考慮對(duì)內(nèi)存碎片率進(jìn)行監(jiān)控。

  • 緩存命中率

keyspace_misses/keyspace_hits這兩個(gè)指標(biāo)用來統(tǒng)計(jì)緩存的命令率,keyspace_misses指未命中次數(shù),keyspace_hits表示命中次數(shù)。keyspace_hits/(keyspace_hits+keyspace_misses)就是緩存命中率。視情況而定,建議0.9以上,即緩存命中率要超過90%。如果緩存命中率過低,那么要排查對(duì)緩存的用法是否有問題!

  • OPS

instantaneous_ops_per_sec這個(gè)指標(biāo)表示緩存的OPS,如果業(yè)務(wù)比較平穩(wěn),那么這個(gè)值也不會(huì)波動(dòng)很大,不過國(guó)內(nèi)的業(yè)務(wù)比較特性,如果不是全球化的產(chǎn)品,夜間是基本上沒有什么訪問量的,所以這個(gè)字段的監(jiān)控要結(jié)合自己的具體業(yè)務(wù),不同時(shí)間段波動(dòng)范圍可能有所不同。

  • 持久化

rdb_last_bgsave_status/aof_last_bgrewrite_status,即最近一次或者說最后一次RDB/AOF持久化是否有問題,這兩個(gè)值都應(yīng)該是'ok'。

另外,由于redis持久化時(shí)會(huì)fork子進(jìn)程,且fork是一個(gè)完全阻塞的過程,所以可以監(jiān)控fork耗時(shí)即latest_fork_usec,單位是微妙,如果這個(gè)值比較大會(huì)影響業(yè)務(wù),甚至出現(xiàn)timeout。

  • 失效KEY

如果把Redis當(dāng)緩存使用,那么建議所有的key都設(shè)置了expire屬性,通過命令src/redis-cli info Keyspace得到每個(gè)db中key的數(shù)量和設(shè)置了expire屬性的key的屬性,且expires需要等于keys:

# Keyspace
db0:keys=30,expires=30,avg_ttl=0
db0:keys=23,expires=22,avg_ttl=0

  • 慢日志

通過命令slowlog get得到Redis執(zhí)行的slowlog集合,理想情況下,slowlog集合應(yīng)該為空,即沒有任何慢日志,不過,有時(shí)候由于網(wǎng)絡(luò)波動(dòng)等原因造成set key value這種命令執(zhí)行也需要幾毫秒,在監(jiān)控的時(shí)候我們需要注意,而不能看到slowlog就想著去優(yōu)化,簡(jiǎn)單的set/get可能也會(huì)出現(xiàn)在slowlog中。



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多