ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

监控内存使用率脚本

2022-04-21 13:03:46  阅读:196  来源: 互联网

标签:cache free swap 监控 memory 使用率 内存


 

案例需求

打印内存使用率脚本,打印内存使用率、swap使用率、buff&cache使用量

实现效果

 

例1:

 

 

 

 

 

例2:


内存使用率: 2.69%,buff&cache:535 MB
Swap使用率: 0%


 

 

脚本应用场景:

监控平台+内存监控脚本

手动监控

解决问题

随时掌握业务对内存的占用,合理使用内存资源

脚本思路

1、获取物理内存、swap的相关数据

​ 1.1通过数据检索获得物理内存总量、Swap的总量

​ 1.2通过数据检索获得物理内存的使用量,Swap的使用量

​ 1.3通过检索获得物理内存buff&cache的量

2、调用相关数据进行运算,并输出结果

 

监控命令

 

free

cat /proc/meminfo

 

实现代码

例1:

 

#! /bin/bash

#内存使用率统计脚本

# /proc/meminfo

#内存申请顺序 free-cache-buffer-swap

memory_use(){

memory_used=`head -2 /proc/meminfo |awk 'NR==1{t=$2}NR==2{f=$2;print(t-f)/t*100"%"}'`
memory_cache=`head -5 /proc/meminfo |awk 'NR==1{t=$2}NR==5{c=$2;print c*100/t"%"}'`
memory_buffer=`head -4 /proc/meminfo |awk 'NR==1{t=$2}NR==4{b=$2;print b*100/t"%"}'`

echo -e "memory_used:$memory_used\t buffer:$memory_buffer\t cached:$memory_cache"

}

memory_use

 

例2:

#!/bin/bash

#Created Time: 
#Release: 
#Description:内存使用率计算脚本

#1、通过free命令结合数据处理获得对应数据
#1.1、获得内存总量
memory_totle=`free -m|grep -i "mem"|tr -s " "|cut -d " " -f2`
swap_totle=`free -m|grep -i "swap"|tr -s " "|cut -d " " -f2`
#1.2、获得内存使用的量
memory_use=`free -m|grep -i "mem"|tr -s " "|cut -d " " -f3`
swap_use=`free -m|grep -i "swap"|tr -s " "|cut -d " " -f3`
#1.3、buff/cache
buff_cache=`free -m|grep -i "mem"|tr -s " "|cut -d " " -f6`

#2、计算输出
#运算的时候是否需要小数点 浮点运算,要考虑使用的命令 (难点 重点)
#echo "内存使用率: $((memory_use*100/memory_totle))%"
#难点:浮点运算中,同优先级的情况下,大数除以小数 尽可能保证精确
echo "内存使用率: `echo "scale=2;$memory_use*100/$memory_totle"|bc`%,buff&cache:$buff_cache MB"
echo "Swap使用率: `echo "scale=2;$swap_use*100/$swap_totle"|bc`%"

 

标签:cache,free,swap,监控,memory,使用率,内存
来源: https://www.cnblogs.com/zypdbk/p/16173636.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有