linux 监控系统资源-内存

监控内存使用量:

思路:使用free -m 提取相关数据,算出使用内存量输入到文件,并且每一次计算都与当前文件中的数据对比,大于文件中的数据则替换。保留当天最大内存使用量,每天发送邮件(可以单独写个发邮件的脚本)。脚本可以写到计划任务里多长时间执行一次。也可以在脚本中加上wheel循环后台启动

Mem行的total:系统总内存

-/+ buffers/cache行的used:实际使用内存

-/+ buffers/cache行的free:程序实际可调用内存


#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_45/bin:/usr/java/jdk1.7.0_45/jre/bin:/usr/local/CCDTSoft/mvn_maven/bin:/root/bin
DAYS=`date +"%Y%m%d"`free
DATE=`date +"%Y-%m-%d--%H:%M:%S"`
DATA_PATH=/usr/local/CCDTSoft/data/BullDog/COUNT/${DAYS}
FILE=`hostname`_Maxfree.txt
#总的内存
TOTAL=`free -m|grep Mem|awk ‘{print $2}‘`
#free -m 第二行的USER,实际已用内存
USED=`free -m|grep buffers/cache|awk ‘{print $3}‘`
#free -m 第二行的free,程序可调用实际内存
FREE=`free -m|grep buffers/cache|awk ‘{print $4}‘`
#百分比USED/TOTAL(实际已用内存百分比)
USAGE_B=`awk ‘BEGIN{printf "%.2f%\n",(‘$USED‘/‘$TOTAL‘)*100}‘`
if [ ! -d ${DATA_PATH} ];
    then
        mkdir -p ${DATA_PATH}
fi
#每天第一次 统计创建统计文件并输入第一次的值,接下来的每一次比较文件中存在的值,如果大于已用内存的百分比则输出替换文件内容,保留最大的内存使用量数据
if [ ! -f ${DATA_PATH}/${FILE} ];
        then
            touch ${DATA_PATH}/${FILE}
                        echo -e "${FILE}\n当天最大内存使用情况:${DATE}\n总内存(m): ${TOTAL}\n内存实际使用量(m): ${USED}\n已用内存百分比(m): ${USAGE_B}\n---\n" > ${DATA_PATH}/${FILE}
                #echo "内存实际使用用量(m): ${USED}" >> ${DATA_PATH}/${FILE}
                #echo "已用内存百分比(m): ${USAGE_B}" >> ${DATA_PATH}/${FILE}
        else
            if [ ${USED} -gt `cat ${DATA_PATH}/${FILE}|grep 内存实际使用量|awk ‘{print $2}‘` ];
                then
                    echo -e "${FILE}\n当天最大内存使用情况:${DATE}\n总内存(m): ${TOTAL}\n内存实际使用量(m): ${USED}\n已用内存百分比(m): ${USAGE_B}\n---\n" > ${DATA_PATH}/${FILE}
            fi
fi
#mail -s "${DAYS}-主机nginxLoad-tomcat内存使用情况" @qq.com < ${DATA_PATH}/${FILE}
#echo USAGE_B=$USAGE_B

效果图

有什么建议和需要改正的地方可以留言,谢谢

时间: 2024-10-08 21:49:48

linux 监控系统资源-内存的相关文章

监控linux的系统资源和自定义进程的cpu 内存占用。

1 #coding=utf8 2 import time 3 import psutil 4 from pprint import pprint 5 6 from logger_until import LoggerUntil 7 logger = LoggerUntil(name="Monitor").getlog(logfilename='Monitor.log', loglevel=2, add_StreamHandler=1) 8 9 need_monitor_procces_

Linux安装rpc监控系统资源

1.rpc服务需rsh的支持,一般情况下rsh已安装.rpm -qa rsh查看.2.右键另存为http://heanet.dl.sourceforge.net/sourceforge/rstatd/rpc.rstatd-4.0.1.tar.gz下载rpc.rstatd-4.0.1.tar.gz.3.执行以下命令解压和安装tar zxvf rpc.rstatd-4.0.1.tar.gzcd rpc.rstatd-4.0.1./configure   //配置make          //编译m

nmon监控Linux服务器系统资源

转 nmon监控Linux服务器系统资源 在实际的测试过程中,Loadrunner监控Linux系统资源不太稳定,经常断开,所以一般采用下面的工具进行监控. 下载地址:http://download.csdn.net/detail/hyzhou1121/3980069 nmon工具 nmon工具是IBM提供的免费的监控AIX系统与Linux系统资源的工具.该工具可将服务器的系统资源耗用情况收集起来并输出一个特定的文件,并可利用Excel分析工具进行数据的统计分析,非常利于Unix或者Linux系

Linux操作系统资源使用情况监控

本文环境说明 操作系统:Redhat6.8. 内核版本:2.6.32-642.el6.x86_64. 系统命令之top 直接在命令行输入top命令回车即可对linux系统的CPU等资源进行监控,如下图所示. 按Ctrl+c结束实时监控界面,回到命令行操作. 系统命令之free直接在命令行输入top命令即可对linux系统的内存等资源进行监控. 辅助工具之nmon 上传nmon工具到服务器,执行即可对服务器对应资源进行实时监控. 本例上传的是nmon_x86_64_rhel54,上传到/root目

【Jmeter如何监控系统资源】

用Jmeter做性能测试的时候,希望监控Linux/windows系统下的系统资源,包括CPU.内存等.但是直接解压下载的Jmeter是没有这项功能的,需要我们安装插件:JMeterPlugins-Standard-1.4.0.zip具体步骤如下: 1.下载JMeterPlugins-Standard-1.4.0.zip,将其解压. 2.将其解压文件中的JMeterPlugins-Standard.jar复制到Jmeter\apache-jmeter-3.1\lib\ext目录下. 3.重新启动

查询磁盘和监控系统资源

查询磁盘和监控系统资源 查询磁盘分区状态 lsblk(list block device)命令可以查看本系统下所有磁盘和磁盘内的分区信息: 可以看到当前系统有sr0.sda装置,sda下有三个分区分别是123,输出信息的含义是: NAME是装置的文件名,MAJ:MIN是主要和次要装置代码,RM代表是否为可卸除装置,SIZE是容量,RO代表是否为只读装置,TYPE是装置类型,rom是只读存储器,disk是磁盘,part是分区:MOUNTPOINT为挂载点.·· lsblk -ip 完整路径的装置文

Linux监控 &nbsp; Nagios

Linux监控 Nagios 1 什么是监控? 监视控制 2 监控谁?        各种服务器 3 监控什么?     网络流量(eth0,eth1)   服务的状态(运行,停止)  硬件资源 cpu  内存 存储 系统运行情况(总数,运行,休眠,僵尸) [[email protected] 桌面]# uptime 09:15:02 up  15min,  4 users,  load average: 0.01, 0.10, 0.08 (数越大,说明在线时间越长,越好) [[email pr

linux监控命令全覆盖(图文说明)

1.1 top 1.1.1 命令说明 Top 命令能够实时监控系统的运行状态,并且可以按照cpu.内存和执行时间进行排序 1.1.2 参数说明 命令行启动参数: 用法: top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...] -b : 批次模式运行.通常用作来将top的输出的结果传送给其他程式或储存成文件 -c : 显示执行任务的命令行 -d : 设定延迟时间 -h : 帮助 -H : 显示线

几个常用的Linux监控脚本

几个常用的Linux监控脚本 几个常用的Linux监控脚本下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助.1.查看主机网卡流量#!/bin/bash#network#Mike.Xuwhile : ; dotime='date +%m"-"%d" "%k":"%M'day='date +%m"-"%d'rx_before='ifconfig eth0|sed -n "8"p|