मैं जावा में निम्नलिखित सिस्टम जानकारी की निगरानी करना चाहूंगा:
- वर्तमान CPU उपयोग ** (प्रतिशत)
- उपलब्ध मेमोरी * (निःशुल्क / कुल)
उपलब्ध डिस्क स्थान (निःशुल्क / कुल)
* ध्यान दें कि मेरा मतलब है संपूर्ण मेमोरी जो पूरे सिस्टम के लिए उपलब्ध है, न कि सिर्फ JVM के लिए।
मैं एक क्रॉस-प्लेटफ़ॉर्म समाधान (लिनक्स, मैक और विंडोज) की तलाश कर रहा हूं जो बाहरी कार्यक्रमों को कॉल करने या जेएनआई का उपयोग करने के लिए मेरे स्वयं के कोड पर भरोसा नहीं करता है। हालांकि ये व्यवहार्य विकल्प हैं, मैं ओएस-विशिष्ट कोड को बनाए रखना पसंद नहीं करूंगा यदि किसी के पास पहले से ही बेहतर समाधान है।
अगर वहाँ एक मुक्त पुस्तकालय है जो एक विश्वसनीय, क्रॉस-प्लेटफ़ॉर्म तरीके से करता है, तो यह बहुत अच्छा होगा (भले ही यह बाहरी कॉल करता है या मूल कोड का उपयोग करता है)।
आपके सुझावों का स्वागत है।
स्पष्ट करने के लिए, मैं पूरी प्रक्रिया के लिए वर्तमान CPU उपयोग प्राप्त करना चाहूंगा, न कि केवल जावा प्रक्रिया (तों)।
SIGAR API एक पैकेज में मेरे द्वारा देखी जा रही सभी कार्यक्षमता प्रदान करता है, इसलिए यह मेरे प्रश्न का अब तक का सबसे अच्छा उत्तर है। हालाँकि, इसे GPL के तहत लाइसेंस प्राप्त होने के कारण, मैं इसे अपने मूल उद्देश्य (एक बंद स्रोत, वाणिज्यिक उत्पाद) के लिए उपयोग नहीं कर सकता। यह संभव है कि हाइपरिक व्यावसायिक उपयोग के लिए SIGAR को लाइसेंस दे सकता है, लेकिन मैंने इस पर ध्यान नहीं दिया है। अपने GPL प्रोजेक्ट्स के लिए, मैं भविष्य में SIGAR पर विचार करूंगा।
मेरी वर्तमान जरूरतों के लिए, मैं निम्नलिखित की ओर झुक रहा हूं:
- सीपीयू उपयोग के लिए,
OperatingSystemMXBean.getSystemLoadAverage() / OperatingSystemMXBean.getAvailableProcessors()
(प्रति सीपीयू औसत लोड) - स्मृति के लिए,
OperatingSystemMXBean.getTotalPhysicalMemorySize()
औरOperatingSystemMXBean.getFreePhysicalMemorySize()
- डिस्क स्थान के लिए,
File.getTotalSpace()
औरFile.getUsableSpace()
सीमाएं:
getSystemLoadAverage()
और डिस्क स्थान के तरीकों की क्वेरी ही उपलब्ध हैं जावा 6. इसके अलावा के तहत, कुछ JMX कार्यक्षमता (यानी यह बताया गया है कि सभी प्लेटफार्मों के लिए उपलब्ध नहीं हो सकताgetSystemLoadAverage()
रिटर्न -1 Windows पर)।
हालांकि मूल रूप से GPL के अंतर्गत लाइसेंस प्राप्त है, यह बदल दिया गया है करने के लिए अपाची 2.0 है, जो आम तौर पर बंद स्रोत, वाणिज्यिक उत्पादों के लिए इस्तेमाल किया जा सकता।