SORU
6 EYLÜL 2008, CUMARTESİ


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
6 EYLÜL 2008, CUMARTESİ


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 kaynakGPL2 lisansı(şimdi Apache 2.0 lisansı var). Şuna bir bak. İhtiyaçlarınızı karşılayacak bir his var içimde.

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.

SIGAR API by Hyperic

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • infodirt

    infodirt

    11 Mart 2009
  • merumputdotcom

    merumputdotc

    24 ŞUBAT 2012
  • SunsetTrance

    SunsetTrance

    20 EYLÜL 2008