sigar使用:在web中应用sigar取得系统信息

本文介绍了一个使用Sigar库的Servlet应用,该应用能够实时获取并显示系统的CPU使用率、内存使用情况及交换分区信息。通过部署SigarServlet,可以在浏览器中直接查看服务器的资源占用状态。
直接看代码:


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hyperic.sigar.Cpu;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.Swap;

public class SigarServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {
Sigar sigar = new Sigar();
CpuPerc perc = sigar.getCpuPerc();
Mem mem = sigar.getMem();
Swap swap = sigar.getSwap();

int cpuUsage = (int)perc.getCombined();
int memFree = (int)(mem.getFree()/(1024l*1024l));
int memTotal = (int)(mem.getTotal()/(1024l*1024l));

int pageFileFree = (int)(swap.getPageOut()/(1024l*1024l));
int pageFileTotal = (int)(swap.getPageIn()/(1024l*1024l));
int swapFree = (int)(swap.getFree()/(1024l*1024l));
int swapTotal = (int)(swap.getTotal()/(1024l*1024l));


response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();

Cpu cpu = sigar.getCpu();

out.println("CPU Usage:"+perc.getCombined());
out.println("<br/>");
out.println("Memory Free:"+memFree);
out.println("<br/>");
out.println("Memory Total:"+memTotal);
out.println("<br/>");
out.println("Swap Free:"+swapFree);
out.println("<br/>");
out.println("Swap Total:"+swapTotal);
out.println("<br/>");
out.println("Page Free:"+pageFileFree);
out.println("<br/>");
out.println("Page Total:"+pageFileTotal);

out.close();

} catch (Exception e) {

}
}

}



配置:


<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>sigar</display-name>
<servlet>
<servlet-name>sigarServlet</servlet-name>
<servlet-class>sigar.SigarServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>sigarServlet</servlet-name>
<url-pattern>/sigar</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>



需要的jar:
.sigar_shellrc
pdh.dll
sigar-1.5.0.1.jar
sigar-x86-winnt.dll
sigar-x86-winnt.lib

测试结果:

访问http://127.0.0.1:8080/sigar/sigar

CPU Usage:0.22815533980582525
Memory Free:863
Memory Total:2046
Swap Free:2048
Swap Total:4330
Page Free:0
Page Total:0


测试系统:windows Vista

注意其他系统需要引入sigar相关的库文件,具体看看sigar的网站:[url]http://hyperic-hq.sourceforge.net/[/url]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值