热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

批量统计redis内存使用情况

需求:由于redis上云,需要统计一批主机上面的主机内存和redis实例内存使用情况。 #!binbashrm-rfredis_mem.logps-ef|grepredis-ser

需求:

由于redis上云,需要统计一批主机上面的主机内存和redis实例内存使用情况。

 

#!/bin/bash

rm -rf redis_mem.log

ps -ef |grep redis-server |grep -v grep | awk '$NF~/cluster/{print $(NF-1);next}{print $NF}' |awk -F':' '{print $2}' >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':' '{print $2}' | sed 's/\r//')
   max_mem=$(grep -w 'maxmemory' info.log | awk -F':' '{print $2}' | sed 's/\r//')
   #role=$(grep role info.log | awk -F':' '{print $2}' | 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 '{print $2}')
redis_used_mem=$(cat redis_mem.log | awk '{sum+=$2}END{printf "%.2f",sum/1024/1024/1024}')
redis_max_mem=$(cat redis_mem.log | awk '{sum+=$3}END{print sum/1024/1024/1024}')
redis_host_ip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | awk -F"/" '{print $1}')
mem_used_pect=$(awk 'BEGIN{printf "%.2f%",'$redis_used_mem'/'$host_total_mem'*100}')

#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%

 


推荐阅读
  • 深入解析Dubbo:使用与源码分析
    本文详细介绍了Dubbo的使用方法和源码分析,涵盖其架构设计、核心特性和调用流程。 ... [详细]
  • 本文详细记录了使用 Docker 创建和管理自定义网络的命令,包括创建指定子网的网络、删除网络以及在指定网络中运行容器的具体操作。 ... [详细]
  • GreenPlum采纳ShareNothing的架构,良好的施展了便宜PC的作用。自此IO不在是DW(datawarehouse)的瓶颈,相同网络的压力会大很多。然而GreenPlum的查问优化策略可能防止尽量少的网络替换。对于首次接触GreenPlum的人来说,必定耳目一新。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 如何在PyCharm中配置Python脚本的默认模板
    本文介绍如何在PyCharm中设置Python脚本的默认模板,以便每次创建新的.py文件时自动填充预设内容,提高开发效率。 ... [详细]
  • 本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 本文介绍了一个使用mii-tool工具检查网络接口状态的Bash脚本,并将结果记录到日志文件中。 ... [详细]
  • 尽管Medium是一个优秀的发布平台,但在其之外拥有自己的博客仍然非常重要。这不仅提供了另一个与读者互动的渠道,还能确保您的内容安全。本文将介绍如何使用Bash脚本将Medium文章迁移到个人博客。 ... [详细]
  • 本文详细介绍了在Mac平台上安装和配置MySQL的步骤,包括下载安装包、卸载MySQL以及解决命令行中找不到mysql命令的问题。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 本文介绍了如何创建和运行一个简单的 Bash 脚本,包括创建脚本文件、编写输出指令、赋予执行权限和运行脚本的基本步骤。 ... [详细]
  • 过去查询Mysql的时候,都见3306对所有端口开放着,感觉不安全。netstat -anlp | grep mysqltcp 0&am ... [详细]
author-avatar
玉乔嘉芸孟峰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有