redis-fainaRedis的query分析小工具
redis-faina 是由Instagram 開發(fā)并開源的一個(gè)Redis 查詢分析小工具。Instagram團(tuán)隊(duì)曾經(jīng)使用PGFouine 來作為其PostgreSQL的查詢分析工具,他們覺得Redis也需要一個(gè)類似的工具來進(jìn)行query分析工作,于是開發(fā)了redis-faina。
redis-faina 是通過Redis的MONITOR命令來實(shí)現(xiàn)的,通過對(duì)在Redis上執(zhí)行的query進(jìn)行監(jiān)控,統(tǒng)計(jì)出一段時(shí)間的query特性。
下面就是其使用方法簡(jiǎn)介:
# 可以通過管道從stdin讀取N條命令 redis-cli -p 6490 MONITOR | head -n <NUMBER OF LINES TO ANALYZE> | ./redis-faina.py # 也可以從一個(gè)文件中讀取N條命令 redis-cli -p 6490 MONITOR | head -n <...> > /tmp/outfile.txt ./redis-faina.py /tmp/outfile.txt
其輸出結(jié)果如下:
Overall Stats ======================================== Lines Processed 117773 Commands/Sec 11483.44 Top Prefixes(按key前綴統(tǒng)計(jì)) ======================================== friendlist 69945 followedbycounter 25419 followingcounter 10139 recentcomments 3276 queued 7 Top Keys(操作最頻繁的key) ======================================== friendlist??1:2 534 followingcount:zzz 227 friendlist:zxz:1:2 167 friendlist:xzz:1:2 165 friendlist:yzz:1:2 160 friendlist:gzz:1:2 160 friendlist:zdz:1:2 160 friendlist:zpz:1:2 156 Top Commands(執(zhí)行最多的命令) ======================================== SISMEMBER 59545 HGET 27681 HINCRBY 9413 SMEMBERS 9254 MULTI 3520 EXEC 3520 LPUSH 1620 EXPIRE 1598 Command Time (microsecs)(命令執(zhí)行時(shí)長(zhǎng)) ======================================== Median 78.25 75% 105.0 90% 187.25 99% 411.0 Heaviest Commands (microsecs)(耗時(shí)最多的命令) ======================================== SISMEMBER 5331651.0 HGET 2618868.0 HINCRBY 961192.5 SMEMBERS 856817.5 MULTI 311339.5 SADD 54900.75 SREM 40771.25 EXEC 28678.5 Slowest Calls(最慢的命令) ======================================== 3490.75 "SMEMBERS" "friendlist??1:2" 2362.0 "SMEMBERS" "friendlist:xzz:1:3" 2061.0 "SMEMBERS" "friendlist:zpz:1:2" 1961.0 "SMEMBERS" "friendlist:yzz:1:2" 1947.5 "SMEMBERS" "friendlist:zpz:1:2" 1459.0 "SISMEMBER" "friendlist:hzz:1:2" "zzz" 1416.25 "SMEMBERS" "friendlist:zhz:1:2" 1389.75 "SISMEMBER" "friendlist:zzx:1:2" "zzz"
從上面結(jié)果我們可以看到對(duì)Redis的操作規(guī)律,比如針對(duì)哪些key在進(jìn)行操作,進(jìn)行了什么操作,這些操作的效率如何等相關(guān)有用信息。
由于Redis的MONITOR 也對(duì)性能有所影響,所以建議在使用時(shí)不要一直開啟MONITOR來分析。可以采用定時(shí)抽樣一段時(shí)間來做樣本分析。
文/NoSQLFan
評(píng)論
圖片
表情
