Nasıl bilgisayar'in cpu, bellek, ve Java disk kullanımını izlemek için?
Java: aşağıdaki sistem bilgilerini izlemek istiyorum
- geçerli cpu kullanımı** (yüzde)
- kullanılabilir bellek* (free/toplam)
kullanılabilir disk alanı (boş/toplam)
*toplam bellek tüm sistemi değil, sadece JVM mevcut yani unutmayın
Kendi kodumu dış programlar arama veya JNI kullanarak dayanmaz bu çapraz platform çözümü (Mac, Windows, Linux) arıyorum. Bu uygulanabilir bir seçenek olmasına rağmen, eğer birileri daha iyi bir çözüm varsa, işletim sistemine özel bir kod kendimi korumak için değil tercih ederim.
Eğer platformlar arasında güvenilir bir şekilde yapar orada ücretsiz bir kütüphane varsa, bu büyük dış çağrılar ya da kendi yerel kod kullanır bile olurdu.
Herhangi bir öneriniz çok takdir.
**EDİT:Açıklığa kavuşturmak için, sistemin tamamı için geçerli CPU kullanımı, sadece Java zorlanacak almak istiyorum.
DÜZENLEME:ADAYLARI API işlevi bir paket arıyorum tüm sağlar, benim sorum şimdiye kadar en iyi cevap bu. Ancak, GPL lisanslı olması nedeniyle, edemem benim asıl amaç (kapalı bir kaynak, Ticari Ürün) için bunu kullanın. Ubuntu ticari kullanım için lisans ADAYLARI olabilir. ama içine bakmadım. GPL projelerimde kesinlikle gelecekte ADAYLARI dikkate alacağım.
Şu anki ihtiyaçlarıma için, aşağıdaki yanayım:
- cpu kullanımı, OperatingSystemMXBean.() getSystemLoadAverage / OperatingSystemMXBean.() getAvailableProcessors (başına ortalama cpu yükü
- bellek için, OperatingSystemMXBean.() getTotalPhysicalMemorySize ve OperatingSystemMXBean.() getFreePhysicalMemorySize
- disk alanı, Dosya.() getTotalSpace ve Dosya.() getUsableSpace
Sınırlamalar:
Bu getSystemLoadAverage() ve disk alanı yöntemlerden sorgulama Java 6 altında kullanılabilir. Ayrıca, bazı JMX işlevselliği tüm platformlar için kullanılabilir durumda değil (yani o getSystemLoadAverage bildirilmiştir() işlevi) Windows -1.
2011-08-18 DÜZENLEME: Aslında GPL lisanslı olmasına rağmen, 0 ** genel olarak kapalı kaynak kodlu, ticari ürünler için kullanılabilir Apache 2.0,.
CEVAP
Birlikte hatlarının bahsettiğim in this post; tavsiye ederim kullanın SIGAR API ( ben değilim ile ilgili onu/onları herhangi bir şekilde - ama, kullandığım ADAYLARI API biri benim kendi uygulamaları ve büyük). İstikrarlı, iyi desteklenen ve yararlı örneklerle dolu olduğunu göreceksiniz. Bir açık kaynak
Java ve Adayları kullanarak Bellek, CPU, Disk, Yük Ortalama, Ağ Arayüzü bilgi ve ölçümler, İşlem Tablosu bilgileri, Rota bilgisi, vb alabilirsiniz API.
Nasıl bir uygulama veya bir işlemin as...
Java nasıl?bellek boşaltmak için...
Java nasıl bir Bellek Sızıntısı bulmak...
Çözmek için nasıl "java.ıo.Ioexce...
Nasıl yaparım Java CPU ve Bellek Kulla...