Redis开发运维实践问题处理只内存检查
8.3.1 系統(tǒng)內(nèi)存查看
script/下的memstat.sh或者ps_mem.py都可以查看系統(tǒng)的內(nèi)存情況,兩個工具都需要root權(quán)限。
8.3.2 系統(tǒng)swap內(nèi)存查看
#!/bin/bash # Get current swap usage for all running processes # Erik Ljungstrom 27/05/2011 # Modified by Mikko Rantalainen 2012-08-09 # Pipe the output to "sort -nk3" to get sorted output # Modified by Marc Methot 2014-09-18 # removed the need for sudoSUM=0 OVERALL=0 for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"` doPID=`echo $DIR | cut -d / -f 3`PROGNAME=`ps -p $PID -o comm --no-headers` for SWAP in `grep VmSwap $DIR/status 2>/dev/null | awk '{ print $2 }'` dolet SUM=$SUM+$SWAP done if (( $SUM > 0 )); thenecho "PID=$PID swapped $SUM KB ($PROGNAME)" fi let OVERALL=$OVERALL+$SUM SUM=0 done echo "Overall swap used: $OVERALL KB"8.3.3 info查看內(nèi)存
used_memory:859192數(shù)據(jù)結(jié)構(gòu)的空間 used_memory_rss:7634944實占空間 mem_fragmentation_ratio:8.89前2者的比例,1.N為佳,如果此值過大,說明redis的內(nèi)存的碎片化嚴(yán)重,可以導(dǎo)出再導(dǎo)入一次.
8.3.4 dump.rdb文件成生內(nèi)存報告(rdb-tool)
# rdb -c memory ./dump.rdb > redis_memory_report.csv # sort -t, -k4nr redis_memory_report.csv8.3.5 query在線分析
8.3.6 內(nèi)存抽樣分析
8.3.7 統(tǒng)計生產(chǎn)上比較大的key
對redis中的key進(jìn)行采樣,尋找較大的keys。是用的是scan方式,不用擔(dān)心會阻塞redis很長時間不能處理其他的請求。執(zhí)行的結(jié)果可以用于分析redis的內(nèi)存的只用狀態(tài),每種類型key的平均大小。
8.3.8 查看key內(nèi)部結(jié)構(gòu)和編碼等信息
查看一個key內(nèi)部信息,比如refcount、encoding、serializedlength等,結(jié)果如下 Value at:0x7f21b9479850 refcount:1 encoding:raw serializedlength:6 lru:8462202 lru_seconds_idle:215
8.3.9 Rss增加,內(nèi)存碎片增加
此時可以選擇時間進(jìn)行redis服務(wù)器的重新啟動,并且注意在rss突然降低觀察是否swap被使用,以確定并非是因為swap而導(dǎo)致的rss降低。
一個典型的例子是:http://grokbase.com/t/gg/redis-db/14ag5n9qhv/redis-memory-fragmentation-ratio-reached-5000
Redis開發(fā)運維實踐指南 本文為《Redis開發(fā)運維實踐指南》內(nèi)容,該書作者為黃鵬程,已授權(quán)云棲社區(qū)轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的Redis开发运维实践问题处理只内存检查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel操作类
- 下一篇: Hadoop最常用的工具(SQL on