需求:
由於redis上雲,需要統計一批主機上面的主機記憶體和redis例項記憶體使用情況。
#!/bin/bash
rm -rf redis_mem.log
ps -ef |grep redis-server |grep -v grep | awk '
$nf~/cluster/
' |awk -f':'
'' >redis_ports
for i in
`cat redis_ports`
do redis-cli -p $i info >info.log
used_mem=$(grep -w '
used_memory
' info.log | awk -f':'
'' | sed '
s/\r//')
max_mem=$(grep -w '
maxmemory
' info.log | awk -f':'
'' | sed '
s/\r//')
#role=$(grep role info.log | awk -f':' '' | sed 's/\r//')
printf '
%10s\t %10s\t %10s\t\n
' $i $used_mem $max_mem >>redis_mem.log
done
host_total_mem=$(free -g | sed -n '
2p' | awk '')
redis_used_mem=$(cat redis_mem.log | awk '
end'
)redis_max_mem=$(cat redis_mem.log | awk '
end'
)redis_host_ip=$(ip addr | grep '
state up
' -a2 | tail -n1 | awk '
' | awk -f"/"
'')mem_used_pect=$(awk '
begin')
#printf '%20s\t %10s\t %10s\t %10s\t %10s\n' 主機ip 主機物理記憶體 redis設定最大記憶體 本機redis已使用記憶體 redis使用記憶體比例
printf '
%20s\t %10s\t %10s\t %10s\t %10s\n
' $redis_host_ip $host_total_mem $redis_max_mem $redis_used_mem $mem_used_pect
假設以上指令碼名test1.sh,將指令碼分發到需要check的主機/tmp目錄下
ansible -i test1 all -m copy -s -a "src=test1.sh dest=/tmp/test1.sh"
執行結果:ansible -i test1 all -m shell -s -a "sh /tmp/test1.sh" | grep -v 'rc'
192.168.100.10 189 120 14.07 7.44%192.168.100.11 189 140 16.42 8.69%
192.168.100.12 189 120 14.33 7.58%
192.168.100.13 189 120 14.31 7.57%
192.168.100.14 189 120 14.56 7.70%
192.168.100.15 189 120 14.32 7.58%
192.168.100.16 189 130 15.54 8.22%
192.168.100.17 189 130 15.76 8.34%
Redis記憶體使用情況分析
由於資料冗餘儲存在redis中,對redis快取使用量比較多,通過監控觀察。所以需要對redis記憶體使用情況進行分析。1 通過redis aof檔案分析。aof檔案記錄redis所有操作日誌,如下圖。優點可以分析key的使用情況。缺點無法分析出占用記憶體的情況,另外由於檔案較大,需要開發程式進行分...
redis記憶體使用情況分析方法
redis記憶體使用情況分析 1.安裝rdbtools工具 pip install rdbtools python lzf 2.對redis的持久化rdb檔案進行分析 用 k選項指定篩選的key,支援pattern rdb c memory dump.rdb k live day room resu...
Linux 記憶體使用情況
linux系統如何檢視使用記憶體情況 root r2 free total used free shared buffers cached mem 215608 142680 72928 0 19736 86956 buffers cache 35988 179620 swap 1052248 0 ...