導航:首頁 > 配伺服器 > java如何監控資料庫伺服器硬碟容量

java如何監控資料庫伺服器硬碟容量

發布時間:2022-07-28 21:41:22

『壹』 如何利用java程序實時獲得硬碟的iops

SUM伺服器監控軟體吧 可以監控所有品牌的伺服器的CPU\內存、磁碟、流量、網路、資料庫、中間件,還能監控網路設備 有啥情況可以簡訊和郵件通知,比較方便 你看看吧,我們用的就是這個,只是溫度不能監控,其他都可以

『貳』 請問哪位高手做個java遠程伺服器監控方面的項目,比如監控CPU、硬碟進程等,並能實現報警功能謝謝了

我知道個人可以做這個的

『叄』 如何在Java程序中獲取、監控伺服器負載值、CPU、內存、硬碟、網路情況

SUM伺服器監控軟體吧
可以監控所有品牌的伺服器的CPU\內存、磁碟、流量、網路、資料庫、中間件,還能監控網路設備
有啥情況可以簡訊和郵件通知,比較方便
你看看吧,我們用的就是這個,只是溫度不能監控,其他都可以

『肆』 如何監視計算機的CPU,內存和磁碟使用情況在Java中

使用sigar來監控,簡單方便!
使用說明:以下代碼需要配合sigar的dll文件來用,需要將dll文件放到JDK下的bin文件夾下,供sigar程序調用,還需要sigarjar包。以下程序經過測試,完全可用!

有關jar包跟dll文件我上傳不了,私信我,我發你importjava.net.InetAddress;
importjava.net.UnknownHostException;
importjava.util.Map;
importjava.util.Properties;
importjava.util.Timer;
importjava.util.TimerTask;

importorg.hyperic.sigar.CpuInfo;
importorg.hyperic.sigar.CpuPerc;
importorg.hyperic.sigar.FileSystem;
importorg.hyperic.sigar.FileSystemUsage;
importorg.hyperic.sigar.Mem;
importorg.hyperic.sigar.NetFlags;
importorg.hyperic.sigar.NetInterfaceConfig;
importorg.hyperic.sigar.NetInterfaceStat;
importorg.hyperic.sigar.OperatingSystem;
importorg.hyperic.sigar.Sigar;
importorg.hyperic.sigar.SigarException;
importorg.hyperic.sigar.Swap;
importorg.hyperic.sigar.Who;

publicclassRuntimeTest{
publicstaticvoidmain(String[]args){
try{
Timertimer=newTimer();//定時器
TimerTasktask=newTimerTask(){
publicvoidrun(){
try{
memory();
}catch(SigarExceptione){
e.printStackTrace();
}
}
};
try{
timer.schele(task,0,3000);//每3秒取一次
}catch(Exceptionex){
ex.printStackTrace();
}
//System信息,從jvm獲取
//property();//根據自己的需求,都可以放到定時器中定時獲取
//cpu信息
//cpu();
//內存信息
//memory();
//操作系統信息
//os();
//用戶信息
//who();}catch(Exceptione1){
e1.printStackTrace();
}
}

privatestaticvoidproperty()throwsUnknownHostException{
Runtimer=Runtime.getRuntime();
Propertiesprops=System.getProperties();
InetAddressaddr;
addr=InetAddress.getLocalHost();
Stringip=addr.getHostAddress();
Map<String,String>map=System.getenv();
StringuserName=map.get("USERNAME");//獲取用戶名
StringcomputerName=map.get("COMPUTERNAME");//獲取計算機名
StringuserDomain=map.get("USERDOMAIN");//獲取計算機域名
System.out.println("用戶名:"+userName);
System.out.println("計算機名:"+computerName);
System.out.println("計算機域名:"+userDomain);
System.out.println("本地ip地址:"+ip);
System.out.println("本地主機名:"+addr.getHostName());
System.out.println("JVM可以使用的總內存:"+r.totalMemory());
System.out.println("JVM可以使用的剩餘內存:"+r.freeMemory());
System.out.println("JVM可以使用的處理器個數:"+r.availableProcessors());
System.out.println("Java的運行環境版本:"+props.getProperty("java.version"));
System.out.println("Java的運行環境供應商:"+props.getProperty("java.vendor"));
System.out.println("Java供應商的URL:"+props.getProperty("java.vendor.url"));
System.out.println("Java的安裝路徑:"+props.getProperty("java.home"));
System.out.println("Java的虛擬機規范版本:"+props.getProperty("java.vm.specification.version"));
System.out.println("Java的虛擬機規范供應商:"+props.getProperty("java.vm.specification.vendor"));
System.out.println("Java的虛擬機規范名稱:"+props.getProperty("java.vm.specification.name"));
System.out.println("Java的虛擬機實現版本:"+props.getProperty("java.vm.version"));
System.out.println("Java的虛擬機實現供應商:"+props.getProperty("java.vm.vendor"));
System.out.println("Java的虛擬機實現名稱:"+props.getProperty("java.vm.name"));
System.out.println("Java運行時環境規范版本:"+props.getProperty("java.specification.version"));
System.out.println("Java運行時環境規范供應商:"+props.getProperty("java.specification.vender"));
System.out.println("Java運行時環境規范名稱:"+props.getProperty("java.specification.name"));
System.out.println("Java的類格式版本號:"+props.getProperty("java.class.version"));
System.out.println("Java的類路徑:"+props.getProperty("java.class.path"));
System.out.println("載入庫時搜索的路徑列表:"+props.getProperty("java.library.path"));
System.out.println("默認的臨時文件路徑:"+props.getProperty("java.io.tmpdir"));
System.out.println("一個或多個擴展目錄的路徑:"+props.getProperty("java.ext.dirs"));
System.out.println("操作系統的名稱:"+props.getProperty("os.name"));
System.out.println("操作系統的構架:"+props.getProperty("os.arch"));
System.out.println("操作系統的版本:"+props.getProperty("os.version"));
System.out.println("文件分隔符:"+props.getProperty("file.separator"));
System.out.println("路徑分隔符:"+props.getProperty("path.separator"));
System.out.println("行分隔符:"+props.getProperty("line.separator"));
System.out.println("用戶的賬戶名稱:"+props.getProperty("user.name"));
System.out.println("用戶的主目錄:"+props.getProperty("user.home"));
System.out.println("用戶的當前工作目錄:"+props.getProperty("user.dir"));
}

privatestaticvoidmemory()throwsSigarException{
Sigarsigar=newSigar();
Memmem=sigar.getMem();
floattotal=mem.getTotal();
floatused=mem.getUsed();
//內存總量
System.out.println("內存總量:"+mem.getTotal()/1024L/1024L+"Mav");
//當前內存使用量
System.out.println("當前內存使用量:"+mem.getUsed()/1024L/1024L+"Mused");
//當前內存剩餘量
System.out.println("當前內存剩餘量:"+mem.getFree()/1024L/1024L+"Mfree");
//當前內存使用率
System.out.println("內存使用率:"+used/total*100+"%");
Swapswap=sigar.getSwap();
//交換區總量
System.out.println("交換區總量:"+swap.getTotal()/1024L/1024L+"Mav");
//當前交換區使用量
System.out.println("當前交換區使用量:"+swap.getUsed()/1024L/1024L+"Mused");
//當前交換區剩餘量
System.out.println("當前交換區剩餘量:"+swap.getFree()/1024L/1024L+"Mfree");
}

privatestaticvoidcpu()throwsSigarException{
Sigarsigar=newSigar();
CpuInfoinfos[]=sigar.getCpuInfoList();
CpuPerccpuList[]=null;
cpuList=sigar.getCpuPercList();
for(inti=0;i<infos.length;i++){//不管是單塊CPU還是多CPU都適用
CpuInfoinfo=infos[i];
System.out.println("第"+(i+1)+"塊CPU信息");
System.out.println("CPU的總量MHz:"+info.getMhz());//CPU的總量MHz
System.out.println("CPU生產商:"+info.getVendor());//獲得CPU的賣主,如:Intel
System.out.println("CPU類別:"+info.getModel());//獲得CPU的類別,如:Celeron
System.out.println("CPU緩存數量:"+info.getCacheSize());//緩沖存儲器數量
printCpuPerc(cpuList[i]);
}
}

privatestaticvoidprintCpuPerc(CpuPerccpu){
System.out.println("CPU用戶使用率:"+CpuPerc.format(cpu.getUser()));//用戶使用率
System.out.println("CPU系統使用率:"+CpuPerc.format(cpu.getSys()));//系統使用率
System.out.println("CPU當前等待率:"+CpuPerc.format(cpu.getWait()));//當前等待率
System.out.println("CPU當前錯誤率:"+CpuPerc.format(cpu.getNice()));//
System.out.println("CPU當前空閑率:"+CpuPerc.format(cpu.getIdle()));//當前空閑率
System.out.println("CPU總的使用率:"+CpuPerc.format(cpu.getCombined()));//總的使用率
}

privatestaticvoidos(){
OperatingSystemOS=OperatingSystem.getInstance();
//操作系統內核類型如:386、486、586等x86
System.out.println("操作系統:"+OS.getArch());
System.out.println("操作系統CpuEndian():"+OS.getCpuEndian());//
System.out.println("操作系統DataModel():"+OS.getDataModel());//
//系統描述
System.out.println("操作系統的描述:"+OS.getDescription());
//操作系統類型
//System.out.println("OS.getName():"+OS.getName());
//System.out.println("OS.getPatchLevel():"+OS.getPatchLevel());//
//操作系統的賣主
System.out.println("操作系統的賣主:"+OS.getVendor());
//賣主名稱
System.out.println("操作系統的賣主名:"+OS.getVendorCodeName());
//操作系統名稱
System.out.println("操作系統名稱:"+OS.getVendorName());
//操作系統賣主類型
System.out.println("操作系統賣主類型:"+OS.getVendorVersion());
//操作系統的版本號
System.out.println("操作系統的版本號:"+OS.getVersion());
}

privatestaticvoidwho()throwsSigarException{
Sigarsigar=newSigar();
Whowho[]=sigar.getWhoList();
if(who!=null&&who.length>0){
for(inti=0;i<who.length;i++){
//System.out.println("當前系統進程表中的用戶名"+String.valueOf(i));
Who_who=who[i];
System.out.println("用戶控制台:"+_who.getDevice());
System.out.println("用戶host:"+_who.getHost());
//System.out.println("getTime():"+_who.getTime());
//當前系統進程表中的用戶名
System.out.println("當前系統進程表中的用戶名:"+_who.getUser());
}
}
}


}

『伍』 java怎樣獲取CPU佔用率和硬碟佔用率

通過jmx可以監控vm內存使用,系統內存使用等,以下是網上某博客代碼,特點是通過window和linux命令獲得CPU使用率。
利用java程序實現獲取計算機cpu利用率和內存使用信息。

packagecom.amgkaka.performance;

/***//**
*監視信息的JavaBean類.
*@authoramg
*@version1.0
*Creationdate:2008-4-25-上午10:37:00
*/
publicclassMonitorInfoBean{
/***//**可使用內存.*/
privatelongtotalMemory;

/***//**剩餘內存.*/
privatelongfreeMemory;

/***//**最大可使用內存.*/
privatelongmaxMemory;

/***//**操作系統.*/
privateStringosName;

/***//**總的物理內存.*/
privatelongtotalMemorySize;

/***//**剩餘的物理內存.*/
;

/***//**已使用的物理內存.*/
privatelongusedMemory;

/***//**線程總數.*/
privateinttotalThread;

/***//**cpu使用率.*/
privatedoublecpuRatio;

publiclonggetFreeMemory(){
returnfreeMemory;
}

publicvoidsetFreeMemory(longfreeMemory){
this.freeMemory=freeMemory;
}

(){
returnfreePhysicalMemorySize;
}

(longfreePhysicalMemorySize){
this.freePhysicalMemorySize=freePhysicalMemorySize;
}

publiclonggetMaxMemory(){
returnmaxMemory;
}

publicvoidsetMaxMemory(longmaxMemory){
this.maxMemory=maxMemory;
}

publicStringgetOsName(){
returnosName;
}

publicvoidsetOsName(StringosName){
this.osName=osName;
}

publiclonggetTotalMemory(){
returntotalMemory;
}

publicvoidsetTotalMemory(longtotalMemory){
this.totalMemory=totalMemory;
}

publiclonggetTotalMemorySize(){
returntotalMemorySize;
}

publicvoidsetTotalMemorySize(longtotalMemorySize){
this.totalMemorySize=totalMemorySize;
}

publicintgetTotalThread(){
returntotalThread;
}

publicvoidsetTotalThread(inttotalThread){
this.totalThread=totalThread;
}

publiclonggetUsedMemory(){
returnusedMemory;
}

publicvoidsetUsedMemory(longusedMemory){
this.usedMemory=usedMemory;
}

publicdoublegetCpuRatio(){
returncpuRatio;
}

publicvoidsetCpuRatio(doublecpuRatio){
this.cpuRatio=cpuRatio;
}
}

『陸』 java可以檢查硬碟大小嗎

可以。請查看鏈接網頁鏈接或者看下面代碼

publicclassSpaceCheck{
publicstaticvoidmain(String[]args){
File[]roots=File.listRoots();
for(File_file:roots){
System.out.println(_file.getPath());
//System.out.println(_file.getName());
System.out.println("Freespace="+(_file.getFreeSpace()/(1024*1024))/1024+"G");//顯示GB大小
System.out.println("Usablespace="+_file.getUsableSpace());
System.out.println("Totalspace="+_file.getTotalSpace());
System.out.println("usedspace="+(_file.getTotalSpace()-_file.getFreeSpace()));
System.out.println();
}
Filewin=newFile("C:\WINDOWS");
System.out.println(win.getPath());
System.out.println(win.getName());
System.out.println("Freespace="+win.getFreeSpace());
System.out.println("Usablespace="+win.getUsableSpace());
System.out.println("Totalspace="+win.getTotalSpace());
System.out.println();
}
}

『柒』 java如何實現對windows系統和Tomcat伺服器進行監控

可以實現,我試過,cpu、內存、磁碟空間等參數信息用C語言來寫一個DLL工程(extern "c"聲明),最好不要用C++寫,因為C++的導出函數會變名,然後java通過JNI規范調用C編寫的函數。
具體是先System.loadLibruary("dll名稱");
用C函數名,注意編譯DLL的時候需要java類的頭文件。cmd命令:javah Java類名。再直接調C函數。

『捌』 Java如何獲得硬碟剩餘空間

java中可以使用file對象,獲取當前電腦硬碟基本信息,示例如下:

importjava.io.File;

publicclassDiskSpaceDetail{

publicstaticvoidmain(String[]args){

FilediskPartition=newFile("C:");

longtotalCapacity=diskPartition.getTotalSpace();

longfreePartitionSpace=diskPartition.getFreeSpace();
longusablePatitionSpace=diskPartition.getUsableSpace();

System.out.println("****SizesinMegaBytes**** ");

System.out.println("TotalCpartitionsize:"+totalCapacity/(1024*1024)+"MB");
System.out.println("UsableSpace:"+usablePatitionSpace/(1024*1024)+"MB");
System.out.println("FreeSpace:"+freePartitionSpace/(1024*1024)+"MB");

System.out.println(" ****SizesinGigaBytes**** ");

System.out.println("TotalCpartitionsize:"+totalCapacity/(1024*1024*1024)+"GB");
System.out.println("UsableSpace:"+usablePatitionSpace/(1024*1024*1024)+"GB");
System.out.println("FreeSpace:"+freePartitionSpace/(1024*1024*1024)+"GB");
}
}

『玖』 如何用java實現遠程監控linux伺服器磁碟io

對於遠程監控Linux主機系統CPU,內存使用情況,以前也使用了top等命令,但是最後還是覺得使用vmstat比較好.

運行top命令獲得系統CPU使用情況有兩個缺點,

第一運行top命令,執行的shell語句相對復雜.
用top命令獲得CPU使用情況的shell語句
top -b -n 2 | grep Cpu |sed 1d | awk '{print $5}' | cut -f 1 -d "."
第二:有時候系統峰值時間很短暫,容易造成誤判.

注意:運行本例子,你還需要下載第三方ganymed-ssh2-build251beta1.jar,改軟體主要用於通過ssh遠程登錄被監控主機.
ITjob上。看。的

閱讀全文

與java如何監控資料庫伺服器硬碟容量相關的資料

熱點內容
游戲不同的伺服器有什麼區別 瀏覽:68
jar線上編譯 瀏覽:115
程序員論壇代碼被懟 瀏覽:996
win7文件夾選項注冊表 瀏覽:786
中央編譯局常艷博士照片 瀏覽:304
濡沫江湖安卓怎麼下載 瀏覽:954
陝西省電信dns伺服器雲伺服器 瀏覽:826
美輯編譯多長時間潤色好 瀏覽:466
伺服器心跳地址是什麼 瀏覽:981
編譯原理與區別 瀏覽:978
安利微購app怎麼樣 瀏覽:931
ios程序員適合什麼鍵盤 瀏覽:722
如何把加密pdf轉換成excel 瀏覽:623
文件夾7z如何壓縮成rar 瀏覽:870
android藍牙低功耗 瀏覽:277
如何下載好大夫app 瀏覽:966
linux查看txt 瀏覽:155
linux硬碟格式化命令 瀏覽:521
神舞幻想存檔放哪個文件夾 瀏覽:653
怎樣把pdf轉為圖片 瀏覽:339