पूर्वावश्यकताएँ:
इस गाइड में दिखाए गए चरणों को करने के लिए, आपको निम्नलिखित घटकों की आवश्यकता है:
- एक उचित रूप से कॉन्फ़िगर किया गया Linux सिस्टम. परीक्षण प्रयोजनों के लिए, Linux VM का उपयोग करने पर विचार करें .
- ए तक पहुंच सूडो विशेषाधिकार के साथ गैर-रूट उपयोगकर्ता
- कमांड-लाइन इंटरफ़ेस की बुनियादी समझ
लिनक्स में वर्चुअल मेमोरी
भौतिक मेमोरी, जिसे RAM भी कहा जाता है, मात्रा में सीमित होती है। कर्नेल इस स्थान को सभी चल रहे प्रोग्रामों में वितरित करने के लिए जिम्मेदार है। सभी चल रहे प्रोग्राम (ओएस सहित) रैम में रहते हैं।
हालाँकि, यदि मेमोरी की मांग उसकी उपलब्ध मेमोरी से अधिक है, तो यह बस सिस्टम को क्रैश कर देती है (या प्रोग्राम अधिक मेमोरी स्पेस मांगेगा)। अधिकांश स्थितियों में, यह एक अवांछित परिणाम होता है। यहीं पर वर्चुअल मेमोरी आती है।
वर्चुअल मेमोरी आपके HDD/SSD पर एक समर्पित डिस्क स्थान को संदर्भित करती है जो गंभीर परिस्थितियों में अतिरिक्त मेमोरी के रूप में कार्य कर सकती है। क्योंकि यह रैम स्पेस के रूप में कार्य कर रहा है (लेकिन वास्तव में नहीं), इसे 'वर्चुअल' माना जाता है। UNIX/Linux सिस्टम में, इन स्थानों को स्वैप स्पेस के रूप में जाना जाता है।
लिनक्स कर्नेल मेमोरी के ब्लॉक को स्वैप स्पेस में ले जाता है और आवश्यकतानुसार उन्हें रैम में वापस लाता है।
वर्चुअल मेमोरी का प्रदर्शन निश्चित रूप से भौतिक मेमोरी की तुलना में धीमा है और यह स्टोरेज डिवाइस के प्रदर्शन के सीधे आनुपातिक है। हालाँकि, विशिष्ट हार्डवेयर कॉन्फ़िगरेशन में (उदाहरण के लिए, NVMe SSD का उपयोग करके), प्रदर्शन RAM के बराबर हो सकता है।
वीएमस्टैट कमांड
'vmstat' कमांड एक निगरानी उपकरण है जो वर्चुअल मेमोरी के बारे में विभिन्न जानकारी रिपोर्ट करता है। यह 'sysstat' पैकेज के एक भाग के रूप में सभी Linux सिस्टम पर उपलब्ध है।
'vmstat' की कमांड संरचना इस प्रकार है:
$ vmstat < विकल्प > < देरी > < गिनती करना >बुनियादी उपयोग
यदि इसे बिना किसी पैरामीटर के चलाया जाता है, तो 'vmstat' अंतिम बूट के बाद से सिस्टम जानकारी प्रिंट करता है:
$ vmstat
आउटपुट को छह खंडों में व्यवस्थित किया गया है:
- प्रक्रियाओं : वर्तमान में चल रही प्रक्रियाओं के आँकड़े
- आर : सक्रिय प्रक्रियाओं की संख्या
- बी : सोने की प्रक्रियाओं की संख्या
- याद : स्मृति उपयोग पर आँकड़े
- swpd : वर्चुअल मेमोरी की कुल मात्रा (स्वैप स्पेस)
- मुक्त : उपलब्ध स्वैप स्थान
- चमड़ा : अस्थायी बफ़र मेमोरी के रूप में उपयोग की जाने वाली स्वैप स्पेस की मात्रा
- कैश : कुल कैश मेमोरी
- बदलना : स्वैप स्थान के बारे में आँकड़े
- हाँ : अदला-बदली की दर
- इसलिए : अदला-बदली की दर
- यह : I/O आँकड़े
- के साथ : ब्लॉक डिवाइस से प्राप्त ब्लॉक की संख्या
- होना : ब्लॉक डिवाइस पर भेजे गए ब्लॉक की संख्या
- प्रणाली : शेड्यूलिंग पर आँकड़े
- में : सिस्टम गिनती में बाधा डालता है
- सी : संदर्भ स्विच की दर
- CPU : विभिन्न सीपीयू आँकड़े
- हम : सीपीयू गैर-कर्नेल प्रक्रियाओं पर समय व्यतीत कर रहा है
- और : सीपीयू कर्नेल प्रक्रियाओं पर समय व्यतीत कर रहा है
- पहचान : सीपीयू सुस्ती में समय बिता रहा है
- का : सीपीयू I/O संचालन पूरा होने की प्रतीक्षा में समय व्यतीत कर रहा है
- अनुसूचित जनजाति : वर्चुअल मशीन द्वारा उपयोग किया जाने वाला सीपीयू समय
डिस्प्ले यूनिट बदलना
डिफ़ॉल्ट रूप से, 'vmstat' मेमोरी मानों को किलोबाइट में रिपोर्ट करता है। इकाई को बदलने के लिए, 'का उपयोग करें -एस ' झंडा:
$ vmstat -एस < तर्क >
यहां, 'vmstat' मानों को मेगाबाइट में प्रिंट करता है।
कई मेमोरी इकाइयाँ उपलब्ध हैं:
- एम : 1048576 बाइट्स (2^20 बाइट)
- एम : 1000000 बाइट्स (1000 किलोबाइट)
- क : 1024 बाइट्स (1 मेगाबाइट)
- क : 1000 बाइट्स (1 किलोबाइट)
सतत सांख्यिकी अद्यतन
डिफ़ॉल्ट रूप से, 'vmstat' रिपोर्ट को एक बार प्रिंट करता है। हालाँकि, हम 'vmstat' को एक निर्दिष्ट समय अंतराल (सेकंड में) पर निरंतर रिपोर्ट प्रदान करने का निर्देश दे सकते हैं।
कमांड संरचना इस प्रकार है:
$ vmstat < देरी >उदाहरण के लिए, हर 2 सेकंड में अद्यतन आँकड़े प्राप्त करने के लिए, आदेश इस प्रकार है:
$ vmstat 2
आउटपुट तब तक नहीं रुकेगा जब तक इसे 'Ctrl + C' का उपयोग करके मैन्युअल रूप से समाप्त नहीं किया जाता।
वैकल्पिक रूप से, हम विशिष्ट संख्या में आँकड़े प्रदान करने के लिए 'vmstat' निर्दिष्ट कर सकते हैं:
$ vmstat < देरी > < गिनती करना >उदाहरण के लिए, हर 2 सेकंड में 5 बार अद्यतन आँकड़े प्राप्त करने के लिए, कमांड इस तरह दिखता है:
$ vmstat 2 5
सक्रिय और निष्क्रिय मेमोरी
सक्रिय मेमोरी उस मेमोरी स्पेस को संदर्भित करती है जिसका उपयोग वर्तमान में किसी प्रक्रिया द्वारा किया जा रहा है। दूसरी ओर, निष्क्रिय मेमोरी उस मेमोरी स्पेस को संदर्भित करती है जिसे एक ऐसी प्रक्रिया को सौंपा गया था जो अब नहीं चल रही है।
'vmstat' का उपयोग करके, हम उपयोग की जा रही सक्रिय और निष्क्रिय यादों की मात्रा की जांच कर सकते हैं:
$ vmstat -ए
यहां, 'बफ़' और 'कैश' कॉलम को क्रमशः 'निष्क्रिय' और 'सक्रिय' कॉलम से बदल दिया गया है।
मेमोरी और शेड्यूलिंग
मेमोरी और शेड्यूलिंग पर अधिक विस्तृत रिपोर्ट प्राप्त करने के लिए, निम्नलिखित कमांड का उपयोग करें:
$ vmstat -एस
यहाँ:
- अनुभाग 1: यह अनुभाग बुनियादी सिस्टम जानकारी जैसे कुल भौतिक मेमोरी, सक्रिय/निष्क्रिय मेमोरी, फ्री/बफर/कैश मेमोरी इत्यादि से संबंधित है।
- धारा 2: विभिन्न सीपीयू आँकड़े
- गैर-अच्छा सीपीयू टिक : कितनी बार उच्च प्राथमिकता वाली प्रक्रियाओं में सीपीयू का उपयोग किया गया।
- अच्छा सीपीयू टिक : कम प्राथमिकता वाली प्रक्रियाओं द्वारा सीपीयू का उपयोग करने की संख्या।
- सिस्टम सीपीयू टिक करता है : कर्नेल प्रक्रियाओं द्वारा सीपीयू का उपयोग करने की संख्या।
- निष्क्रिय सीपीयू टिक करता है : जितनी बार सीपीयू निष्क्रिय खड़ा हुआ।
- आईओ-प्रतीक्षा सीपीयू टिक : सीपीयू I/O प्रबंधन के लिए जितनी बार प्रतीक्षा करता है।
- आईआरक्यू : सीपीयू को व्यवधान अनुरोध प्राप्त होने की संख्या।
- सॉफ़्टिरक : CPU को सॉफ़्टवेयर व्यवधान अनुरोध प्राप्त होने की संख्या।
- चुराए गए सीपीयू टिक : वीएम द्वारा सीपीयू का समय चुराने की संख्या।
- धारा 3: मेमोरी पेजिंग आँकड़े
- धारा 4: इवेंट काउंटर
बूट के बाद से कांटे
फोर्क्स उन प्रक्रियाओं को संदर्भित करते हैं जो मौजूदा प्रक्रियाओं द्वारा उत्पन्न हुई थीं। कांटा गिनती पर आँकड़े प्राप्त करने के लिए, निम्न आदेश चलाएँ:
$ vmstat -एफ
डिस्क और विभाजन सांख्यिकी
'vmstat' कमांड डिस्क गतिविधि के बारे में भी जानकारी प्रदान कर सकता है। डिस्क गतिविधि का त्वरित सारांश प्राप्त करने के लिए, निम्न आदेश चलाएँ:
$ vmstat -डी
अधिक विस्तृत डिस्क गतिविधि रिपोर्ट (पढ़ने/लिखने के आँकड़े सहित) प्राप्त करने के लिए, इसके बजाय निम्नलिखित कमांड का उपयोग करें:
$ vmstat -डी
यहाँ:
- पुस्तकें
- कुल : कुल डिस्क रीड गिनती
- विलय होना : कुल समूह गिनती पढ़ता है
- क्षेत्रों : पढ़े गए सेक्टरों की कुल संख्या
- एमएस : डिस्क से डेटा पढ़ने में लगने वाला कुल समय (मिलीसेकंड में)
- लेखन
- कुल : कुल डिस्क लेखन संख्या
- विलय होना : कुल समूह लेखन गिनती
- क्षेत्रों : लिखित सेक्टरों की कुल संख्या
- एमएस : डिस्क पर लिखने का कुल समय (मिलीसेकंड में)
- आईओ
- रखना : कुल वर्तमान डिस्क पढ़ती/लिखती है
- सेकंड : चल रहे पढ़ने/लिखने के ऑपरेशन में व्यतीत समय की मात्रा (सेकंड में)
'vmstat' कमांड एक विशिष्ट डिस्क विभाजन के लिए रिपोर्ट भी तैयार कर सकता है। विभाजन रिपोर्ट प्राप्त करने के लिए, निम्न कमांड संरचना का उपयोग करें:
$ vmstat -पी < विभाजन_पहचानकर्ता >
स्लैब सांख्यिकी
स्लैब आवंटन को ऑब्जेक्ट की मेमोरी आवंटन के लिए एक कुशल तंत्र के रूप में डिज़ाइन किया गया है। पिछले तंत्र की तुलना में, स्लैब आवंटन मेमोरी विखंडन (मेमोरी आवंटन और डीलोकेशन के कारण) में कमी प्रदान करता है।
सिस्टम के स्लैब आँकड़ों की जाँच करने के लिए, निम्नलिखित 'vmstat' कमांड का उपयोग करें:
$ सूडो vmstat -एम
ध्यान दें कि आँकड़े देखने के लिए रूट अनुमति की आवश्यकता होती है।
यहाँ:
- कैश : कैश्ड डेटा का नाम
- एक पर : Num कैश में सक्रिय ऑब्जेक्ट्स की संख्या
- कुल : किसी विशेष कैश में ऑब्जेक्ट की कुल गिनती
- आकार : कैश्ड ऑब्जेक्ट का आकार
- पृष्ठों : उन स्मृति पृष्ठों की संख्या जिनमें कैश्ड ऑब्जेक्ट हैं
निष्कर्ष
इस गाइड में, हमने 'vmstat' कमांड का उपयोग करने के विभिन्न तरीकों का प्रदर्शन किया। वर्चुअल मेमोरी के अलावा, 'vmstat' डिस्क सांख्यिकी, फोर्क्स, स्लैब और बहुत कुछ पर भी रिपोर्ट कर सकता है।
क्या आप अन्य सिस्टम मॉनिटरिंग टूल के बारे में जानने में रुचि रखते हैं? बारे में और सीखो htop , मारना , पी.एस. , वगैरह।
हैप्पी कंप्यूटिंग!