अधिकांश डिस्क IO को jbd2 के लिए जिम्मेदार ठहराया गया है और उस प्रक्रिया को नहीं जो वास्तव में IO का उपयोग कर रही है?


18

डिस्क IO की निगरानी करते समय, अधिकांश IO को jbd2 के लिए जिम्मेदार ठहराया जाता है, जबकि उच्च IO के कारण होने वाली मूल प्रक्रिया को बहुत कम IO प्रतिशत का श्रेय दिया जाता है। क्यों?

यहाँ iotopउदाहरण का आउटपुट है (IO के साथ अन्य प्रक्रियाएँ <1% छोड़ा गया है):

यहाँ छवि विवरण दर्ज करें


क्या यह साथ है data=journal?
डिप्रेस्डैनियल

@DepressedDaniel निश्चित नहीं है कि आपका क्या मतलब है। मैं सिर्फ -OP iotop इस्तेमाल किया
हीरा

जवाबों:


16

jbd2 एक कर्नेल थ्रेड है जो फाइल सिस्टम जर्नल को अपडेट करता है।

फाइलसिस्टम या डिस्क की गतिविधि को उस प्रक्रिया से ट्रेस करना जिसके कारण यह मुश्किल है क्योंकि कई प्रक्रियाओं की गतिविधियों को एक साथ जोड़ दिया जाता है। उदाहरण के लिए, यदि दो प्रक्रियाएँ एक ही समय में एक ही फ़ाइल से पढ़ रही हैं, तो किस प्रक्रिया को पढ़ा जाना चाहिए? यदि दो प्रक्रियाएं एक ही निर्देशिका को लिखती हैं और निर्देशिका केवल एक बार डिस्क पर अपडेट की जाती है (दो संचालन का संयोजन), तो लिखने की प्रक्रिया किसके खिलाफ होगी?

आपके मामले में, ऐसा प्रतीत होता है कि अधिकांश ट्रैफ़िक में जर्नल के अपडेट शामिल हैं। यह जर्नल अपडेटर का पता लगाया जाता है, लेकिन जर्नल अपडेट और प्रक्रिया (तों) के बीच कोई अनुरेखण नहीं है, जिसके कारण राइट ऑपरेशन (एस) हुआ जिससे इस जर्नल अपडेट की आवश्यकता थी।


2
जर्नल अपडेट के अलावा कौन सी अन्य डिस्क io श्रेणियां हैं? (यानी jdb2 केवल iotop के आउटपुट में एंट्री क्यों नहीं है?)
स्पार्कलर

@ स्पार्कलर वास्तविक डेटा, साथ ही साथ लिख रहा है। (जब तक आप लॉग-स्ट्रक्चर्ड फाइलसिस्टम का उपयोग नहीं कर रहे हैं, लेकिन अधिकांश नहीं हैं।)
गिल्स एसओ- बुराई को रोकें '

जो बताता है वही होता है। लेकिन यह बड़ा समय बेकार करता है जब मूल प्रक्रिया 'I / O प्राथमिकता को' निष्क्रिय 'कर दिया गया है और jbd2बस I / O के बहुत सारे अपने I / O प्राथमिकता पर करना जारी रखता है।
jlh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.