java监控Linux服务器性能_java实现Linux服务器内存监控预警

本文介绍了一个使用Java程序监控Linux服务器内存的方法,通过读取/proc/meminfo文件获取内存信息,判断内存使用率并设置阈值触发邮件预警。同时,提供了shell脚本和cron定时任务配置来周期性运行监控程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.需求场景

利用java程序监控Linux服务器内存变化,根据设定的内存阈值发报警邮件

2.项目环境

普通java项目,jar形式

3.解决方法

(1)读取Linux 内存监控文件(/proc/meminfo),获取内存信息。

public static int [] getLinuxMemInfo() throws IOException, InterruptedException

{

File file = new File("/proc/meminfo" );

BufferedReader br = new BufferedReader( new InputStreamReader(new FileInputStream(file)));

int [] result = new int [ 4 ];

String str = null ;

StringTokenizer token = null ;

while ((str = br.readLine()) != null )

{

token = new StringTokenizer(str);

if (!token.hasMoreTokens())

continue ;

str = token.nextToken();

if (!token.hasMoreTokens())

continue ;

if (str.equalsIgnoreCase("MemTotal:" ))

result[0 ] = Integer.parseInt(token.nextToken());

else if (str.equalsIgnoreCase("MemFree:" ))

result[1 ] = Integer.parseInt(token.nextToken());

else if (str.equalsIgnoreCase("SwapTotal:" ))

result[2 ] = Integer.parseInt(token.nextToken());

else if (str.equalsIgnoreCase("SwapFree:" ))

result[3 ] = Integer.parseInt(token.nextToken());

}

return result;

}

(2)根据设定阈值,是否发邮件预警

int [] mem = LinuxSystemTool.getMemInfo();

double rate = (float)mem[1]/(float)mem[0];

String content ="比值:"+new java.text.DecimalFormat("#0.00").format(rate)+"\t总内存:"+mem[0]+"KB\t空闲物理内存:"+mem[1]+"KB\t交换分区总内存:"+mem[2]+"KB\t交换分区空闲内存:"+mem[3]+"KB";

if(rate<=0.2){

content+="\t系统有些累了!o(╥﹏╥)o";

EmailUtil.sendEmail("yourmail@163.com", "内存预警", content);

}else{

System.out.println("系统充满活力!^_^)";

}

(3)shell脚本

#!/bin/sh

export LANG=en_US.UTF-8

cd /test/demo

/opt/jdk/bin/java -jar /test/demo/memmonitor.jar

(4)设定定时任务

crontab -e

*/10 * * * * /test/demo/memmonitor.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值