Iotop द्वारा दर्शाई गई जानकारी अलग-अलग प्रक्रियाओं के लिए और सिस्टम के लिए समान रूप से एकत्रित नहीं की जाती है। "वास्तविक" वैश्विक आंकड़े प्रति-प्रक्रिया आंकड़ों का योग नहीं हैं (यह "कुल" है)।
सभी जानकारी खरीद फाइल सिस्टम से एकत्र की जाती है ।
- प्रत्येक प्रक्रिया के लिए, iotop डेटा , विशेष रूप से और मूल्यों से डेटा पढ़ता है। इन में पारित कर दिया बाइट्स की संख्या में हैं और सिस्टम कॉल (सहित जैसे वेरिएंट , , , , आदि)।
/proc/PID/io
rchar
wchar
read
write
readv
writev
recv
send
- वैश्विक "वास्तविक" मूल्यों को
/proc/vmstat
विशेष रूप से pgpgin
और pgpgout
मूल्यों से पढ़ा जाता है। ये कर्नेल और हार्डवेयर के बीच आदान-प्रदान किए गए डेटा को मापते हैं (अधिक सटीक रूप से, यह कर्नेल में ब्लॉक डिवाइस परत द्वारा चारों ओर फेरबदल किया गया डेटा है)।
प्रति-प्रक्रिया डेटा और ब्लॉक डिवाइस परत डेटा भिन्न होने के कई कारण हैं। विशेष रूप से:
- कैशिंग और बफ़रिंग का मतलब है कि एक परत पर हो रहा I / O एक ही समय में नहीं हो रहा है, या दूसरी परत पर समान संख्या में हो सकता है। उदाहरण के लिए, कैश से पढ़े गए डेटा को उस तक पहुँचने वाली प्रक्रिया से पढ़े जाने के रूप में जाना जाता है, लेकिन हार्डवेयर से कोई संबंधित रीड नहीं होता है (जो पहले से ही हुआ है, संभवतः किसी अन्य प्रक्रिया की ओर से)।
- प्रक्रिया-स्तरीय डेटा में पाइप, सॉकेट और अन्य इनपुट / आउटपुट पर एक्सचेंज किए गए डेटा शामिल होते हैं जिसमें एक अंतर्निहित डिस्क या अन्य ब्लॉक डिवाइस शामिल नहीं होता है।
- प्रक्रिया-स्तर डेटा केवल फ़ाइल सामग्री के लिए खाता है, मेटाडेटा नहीं।
यह अंतिम अंतर बताता है कि आप यहां क्या देख रहे हैं। फ़ाइलों को हटाने से केवल मेटाडेटा प्रभावित होता है, डेटा नहीं, इसलिए प्रक्रिया कुछ भी नहीं लिख रही है। यह हटाने के लिए फ़ाइलों को सूचीबद्ध करने के लिए निर्देशिका सामग्री पढ़ सकता है, लेकिन यह काफी छोटा है कि इसे किसी का ध्यान नहीं जा सकता है।
मुझे नहीं लगता कि लिनक्स फ़ाइल मेटाडेटा अपडेट की निगरानी करने का कोई तरीका प्रदान करता है। आप /sys/fs
कुछ फाइल सिस्टम के तहत प्रविष्टियों के माध्यम से प्रति-फाइलसिस्टम I / O की निगरानी कर सकते हैं । मुझे नहीं लगता कि आप विशिष्ट प्रक्रियाओं के खिलाफ मेटाडेटा I / O का लेखा कर सकते हैं, यह सामान्य मामले में करने के लिए बहुत जटिल होगा क्योंकि कई प्रक्रियाएं एक ही मेटाडेटा को पढ़ने या परिवर्तित करने का कारण बन सकती हैं।