मैं शीर्ष IO उपभोग करने वाली फ़ाइलों को कैसे सूचीबद्ध कर सकता हूं?


11

मेरा दस्तावेज़ प्रबंधन सॉफ्टवेयर बहुत सारे IO कर रहा है और मैं जानना चाहूंगा कि यह कौन सी फाइलों को सबसे अधिक एक्सेस कर रहा है।

क्या कोई लिनक्स उपकरण है जो मुझे शीर्ष IO उपभोग करने वाली फ़ाइलों की सूची देगा, जैसे कि iotop, लेकिन फ़ाइलों के लिए, हर कुछ सेकंड में?

जैसा दिख सकता है:

$ thetool
THRPUT   R/W/SWP FILE
40MB/s   write   /usr/alfresco/repo/1283421/1324928.doc
12MB/s   read    /usr/alfresco/cache/3928dh29f8if
11MB/s   read    /tmp/239398hf2f024f472.tmp

मैं का आदमी पन्नों में देखा iotop, lsof, straceऔर वे इस तरह के एक सुविधा प्रदान करने नहीं है।


आप इस जानकारी को 'स्ट्रेस' से प्राप्त करने के लिए पोस्ट-प्रोसेसर लिख सकते हैं, लेकिन अभी तक मुझे पता है, ऐसा कोई उपकरण मौजूद नहीं है। (ऐसा उपकरण 'एमएमएपी' के माध्यम से होने वाले संचालन को याद करेगा।)
डेविड श्वार्ट्ज़

जवाबों:


2

मुझे लगता है कि आपके "बाइट्स की संख्या" मीट्रिक गलत है। दो पहुँच पर विचार करें। एक फ़ाइल से 10MB पढ़ता है। अन्य पहले 10 एमबी के लिए फ़ाइल के प्रत्येक 512 वें बाइट को पढ़ता है। "बाइट्स की संख्या" दूसरी की तुलना में पहली पहुंच के लिए 512 गुना अधिक होगी। फिर भी वे दोनों I / O सबसिस्टम पर एक ही भार डालेंगे।

यदि आप "संचालन की संख्या" को स्वीकार कर सकते हैं, जो कि "बाइट्स की संख्या" के रूप में अच्छा या बुरा है, तो आपके पास कुछ ऐसा है जिसे आप वास्तव में माप सकते हैं। inotifywatchकार्यक्रम इस करता है, और यह आपके वितरण के होने की संभावना हिस्सा है inotify-toolsपैकेज।

यह आपको तुरंत बताएगा कि कौन सी फाइलें एक्सेस के थोक शामिल हैं, और यह संभवतः आपकी वास्तविक समस्या को हल करने की अनुमति देगा।


iotop एक मीट्रिक के रूप में MB / s का उपयोग करता है, क्या iotop गलत है? आपके inotifywatch सुझाव के लिए +1, मैन पेज में उदाहरण वास्तव में मुझे क्या चाहिए, और मैंने अपने प्रश्न में क्या वर्णित किया है। आपका बहुत बहुत धन्यवाद!
निकोलस राउल

सही, लेकिन 'iotop' फाइलों की पहचान नहीं कर सकता, केवल डिवाइस को ब्लॉक कर सकता है। तो यह आपको समस्या प्रक्रिया और / या समस्या फाइल सिस्टम / डिवाइस की पहचान करने में मदद कर सकता है, लेकिन यह कि कौन सी फाइल एक्सेस कर रही है। आपको अलग-अलग साधनों से टुकड़ों को एक साथ रखना पड़ सकता है।
डेविड श्वार्ट्ज

हम, दिलचस्प, धन्यवाद! मैं अब inotifywatch के साथ खेल रहा हूं, और मैं जांच करूंगा कि मैं क्या कर सकता हूं।
निकोलस राउल

0

सबसे पहले, स्पष्ट करने के लिए: "IO उपभोग करने वाली फ़ाइलों" जैसी कोई चीज नहीं है । फाइलें निष्क्रिय वस्तुएं हैं। यह ऐसे प्रोग्राम हैं जो IO को ट्रिगर करते हैं (आमतौर पर फ़ाइलों को पढ़ने / लिखने के द्वारा) और वे कम या ज्यादा बार फाइलों तक पहुंच सकते हैं। तो आप फाइलों के संबंध में जिस थ्रूपुट का उल्लेख करते हैं, वह वास्तव में बहुत मायने नहीं रखता था। फ़ाइलों के संबंध में एक उपयोगी जानकारी यह हो सकती है कि वे कितनी बार एक्सेस और संशोधित हो। इस का उपयोग करते हुए नजर रखी जा सकती notifywait -m /some/file/or/directory(से inotify उपकरण या जैसे कुछ और अधिक जटिल प्रणाली) परिवार या परित्यक्त बालक


मैं इस "थ्रूपुट" का वर्णन करूंगा (अन्य शब्द अधिक उपयुक्त हो सकता है, मेरी अंग्रेजी के लिए खेद है) बाइट्स की मात्रा के रूप में जो एक सेकंड के दौरान / से एक विशेष फ़ाइल के लिए पढ़ी / लिखी जाती है (प्रत्येक प्रक्रिया के लिए राशि जो उस दौरान फ़ाइल तक पहुंचती है) दूसरा)। मुझे उम्मीद है कि यह अधिक समझ में आता है। inotifywait, fam, gamin दुर्भाग्य से केवल मुझे बताएं "फ़ाइल एक्स को संशोधित / पढ़ा गया है" जो कि दिलचस्प है लेकिन वह नहीं है जो मैं देख रहा हूं।
निकोलस राउल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.