2011-03-02 13 views
15

मैं उबंटू का उपयोग कर रहा हूं। ऐसी कुछ प्रक्रियाएं हैं जो मेरे सर्वर पर अक्सर io कर रही हैं, यहां तक ​​कि "ls" कमांड को निष्पादित करने के लिए 1 सेकंड का खर्च होगा। मैं यह जानना चाहता हूं कि कौन सी प्रक्रिया आईओओ इतनी भारी कर रही है, क्या कोई अच्छा आदेश या उपकरण है?आईओओ अक्सर प्रक्रिया को कैसे ढूंढें?

धन्यवाद।

+0

उत्तर स्वीकार करने के लिए, अपने पसंदीदा उत्तर के बगल में स्थित चेक मार्क पर क्लिक करें। –

+0

संभावित डुप्लिकेट [लिनक्स में सबसे अधिक I/o को संसाधित करने वाली प्रक्रिया को कैसे ढूंढें?] (Http://stackoverflow.com/questions/466496/how-to-find-the-process-which-is-cosuming -the-most-io-in-linux) – dogbane

उत्तर

21

आप io भारी प्रक्रियाओं को खोजने के लिए iotop का उपयोग कर सकते हैं।

+3

** sudo ** के साथ iotop चलाने के लिए मत भूलना या यह विफल हो जाएगा। – Eye

6

iotop में एक शीर्ष-जैसा इंटरफ़ेस है और दिखाता है कि प्रत्येक प्रक्रिया कितनी I/O पढ़ती है और लिखती है।

6

आप atop का उपयोग कर सकते हैं जो डिस्क को कई अन्य चीजों के बीच प्रक्रियाओं द्वारा पढ़ और लिखने की रिपोर्ट कर सकता है।

Disk utilization — key 'd'

7

एक त्वरित तरीका /proc/[PID]/io फ़ाइल को देखने के लिए है।

उदाहरण:

$ cat /proc/1944/io 
read_bytes: 17961091072 
write_bytes: 8192000 
cancelled_write_bytes: 32768 
+0

आपने सर्वोत्तम विधि के बारे में लिखा है :) यह प्रक्रिया को नियंत्रित करने के लिए स्क्रिप्ट लिखने के लिए उपयोग योग्य है। जब प्रक्रिया बहुत अधिक खपत होती है, तो इसे सिगस्टॉप द्वारा रोका जा सकता है, और आईओ के नीचे जाने के बाद, इसे सिगॉन्ट द्वारा जगाया जाना चाहिए :) – Znik

2

आप pidstat कोशिश कर सकते हैं। मुझे यह उपयोगी लगता है जब मुझे यह पहचानने की आवश्यकता है कि किस प्रक्रिया ने उच्च io बनाया है।

संबंधित मुद्दे