热门标签 | 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%

 


推荐阅读
  • 本文介绍了如何在Mac操作系统中实现对NTFS文件系统的完整读写功能,包括必要的软件安装步骤和配置方法。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • Python编码入门指南
    本文探讨了使用Python进行网络设备连通性测试的简便性,特别是针对IP地址范围为192.168.0.101至192.168.0.200的设备。通过比较Python与Shell、Java等语言,展示了Python在执行此类任务时的优势。 ... [详细]
  • 本文探讨了在渗透测试中信息收集阶段使用的几种端口扫描技术,包括nmap、masscan、socket、telnet及nc等工具的应用与比较。 ... [详细]
  • 本文深入探讨了在MySQL数据库中利用innobackupex工具进行备份,并结合binlog日志实现数据库的完整恢复过程。适合对数据库管理和维护有一定需求的技术人员阅读。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 本文详细介绍了虚拟专用网(Virtual Private Network, VPN)的概念及其通过公共网络(如互联网)构建临时且安全连接的技术特点。文章探讨了不同类型的隧道协议,包括第二层和第三层隧道协议,并提供了针对IPSec、GRE以及MPLS VPN的具体配置指导。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • Windows 环境下安装 Git 并连接 GitHub 的详细步骤
    本文详细介绍了如何在 Windows 系统中安装 Git 工具,并通过配置 SSH 密钥实现与 GitHub 的安全连接。包括下载、安装、环境配置及验证连接等关键步骤。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 本文探讨了如何使用ls -lsh命令排除总大小输出,仅显示文件大小的方法,并提供了几种实现这一目标的解决方案。 ... [详细]
  • 本文详细介绍了如何在Linux系统中安装和配置GitLab Runner,包括添加YUM源、安装GitLab Runner以及注册Runner的具体步骤。 ... [详细]
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社区 版权所有