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

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

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

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值