एक प्रक्रिया 'डी' राज्य में कब जाएगी?


21

मैं "लिनक्स होस्टनाम 2.6.28-15-जेनेरिक # 49-उबंटू एसएमपी टीयू 18 अगस्त 18:40:08 यूटीसी 2009 i686 जीएनयू / लिनक्स" का उपयोग कर रहा हूं

सभी क्लाइंट मशीनें थिन-क्लाइंट का उपयोग करेंगी, मैं काम करने के लिए अपने लैपटॉप का उपयोग करूंगी और मैं अपने होम डायरेक्टरी को सर्वर से अपने लैपटॉप पर माउंट करूंगी।

यदि मैं अपने लैपटॉप में फ़ायरफ़ॉक्स खोलता हूँ तो फ़ायरफ़ॉक्स विंडो नहीं खुलेगी क्योंकि यह प्रक्रिया 'डी' अवस्था में है, और अन्य सभी उपयोगकर्ता मशीनें हैंग हो गई हैं और लॉकड प्रक्रिया 'डी' राज्य में है,

ps ajx | grep फ़ायरफ़ॉक्स

1  6187  4313  4313 ?   -1 D<    1030   3:16 /usr/lib/firefox-3.5b4pre/firefox-3.5

   7610  7622  7621  7610 pts/3      7621 S+    1030   0:00 grep firefox

अगर मैं syslog की जाँच करता हूँ

जुलाई 13 10:35:56 होस्टनाम कर्नेल: [222583.872059] लॉकड: लैपटॉप की निगरानी नहीं कर सकता

जुलाई 13 10:35:57 होस्टनाम कर्नेल: [222583.872059] लॉकड: लैपटॉप की निगरानी नहीं कर सकता

ps ajx | grep लॉकड

रूट 9178 0.0 0.0 0 0? D <13:35 0:00 [लॉकड]

रूट 11039 0.0 0.0 3340 796 pts / 3 S <+ 14:18 0:00 grep लॉकड

सभी क्लाइंट मशीनों के लिए एक ही संदेश।

जब एक प्रक्रिया 'डी' राज्य में जाएगी?

लॉकड प्रक्रिया 'डी' राज्य में कब जाएगी?

लॉकड प्रक्रिया का उद्देश्य क्या है।

जवाबों:


16

Dराज्य कोड का मतलब है कि प्रक्रिया निर्बाध नींद में है, और इसका मतलब अलग-अलग चीजें हो सकती हैं लेकिन यह आमतौर पर I / O है। lockdइन-कर्नेल डेमॉन है जो NFS लॉकिंग का प्रबंधन करता है। आपको समस्या वास्तव में अधिक डिबगिंग की आवश्यकता है, लेकिन कुल मिलाकर यह एनएफएस संचार में लगता है।


इससे कैसे बचा जाए? लॉकड प्रक्रिया को 'डी' राज्य में नहीं जाना चाहिए, मुझे क्या करने की आवश्यकता है?
अनगलनबान

@ कुंदनबन: यह असंभव है, अगर I / O का उपयोग करते हुए प्रक्रियाएं हमेशा 'D' से बाहर जाती हैं। इसलिए आपके मामले में, प्रक्रिया, उदाहरण के लिए, कुछ डेटा पढ़ने या लिखने, एक लॉक हासिल करने की कोशिश कर रही है, वह ऐसा नहीं कर सकता है और प्रतीक्षा करता रहता है। आपको डिबग करना होगा कि यह किस चीज का इंतजार कर रहा है आदि मैं यह बताने के लिए एनएफएस विशेषज्ञ नहीं हूं कि क्षमा करें।

15

इसका अर्थ है "निर्बाध नींद"

D    Uninterruptible sleep (usually IO)

इस स्थिति में, एक प्रक्रिया संकेतों को संसाधित करने के लिए तुरंत नहीं उठती है। डिवाइस करते समय I/Oयह जाने का एकमात्र तरीका है (अन्यथा डेटा भ्रष्टाचार परिणाम सकता है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.