मैं किसी विशेष निर्देशिका में डिस्क I / O की निगरानी कैसे कर सकता हूं?


10

मुझे एक ज्ञात नाम के साथ कुछ प्रक्रियाएं मिली हैं जो सभी एक ही निर्देशिका में फ़ाइलों को लिखते हैं। मैं डिस्क ब्लॉक की संख्या को लॉग इन करना चाहता हूं, यह जांचने के लिए कि क्या कोई पैरामीटर परिवर्तन I / O की मात्रा को काफी कम करता है, परीक्षण करने के लिए एक अवधि ( न कि केवल फ़ाइल एक्सेस) पर लिखता है। मैं वर्तमान में उपयोग कर रहा हूं iostat -d -p, लेकिन यह पूरे विभाजन तक सीमित है।



1
यह उन सवालों से अलग है, क्योंकि मुझे खुद फाइलों में दिलचस्पी नहीं है, बल्कि आई / ओ की मात्रा है।
l0b0

जवाबों:


10

मुझे लगता है कि यह सरलीकृत और बेतुका दोनों ही लग रहा है, लेकिन यदि आपके पास प्रश्न में एप्लिकेशन पर नियंत्रण है (शायद एक परीक्षण वातावरण में) तो आप केवल उस निर्देशिका को उसके स्वयं के विभाजन पर माउंट कर सकते हैं iostat, आदि, आपको केवल बताएगा। इसके बारे में, और उस मौके पर और कुछ नहीं।

यदि भौतिक ड्राइव शामिल हैं तो आप इसे लूपबैक माउंट ला ला के साथ नकली बना सकते हैं

dd if=/dev/zero of=/bigdisk/LOOPFILE bs=1024m count=1024m # 1gb loopback file
mke2fs -j /bigdisk/LOOPFILE
mkdir /tmpcopy
mount -o loop /tmpcopy /bigdisk/LOOPFILE
cp -r -p $SPECIALDIR2MONITOR /tmpcopy
umount /tmpcopy
mount -o loop $SPECIALDIR2MONITOR  /bigdisk/LOOPFILE,

यह पूरी तरह से सभी प्रतिस्पर्धा डिस्क I / O को नहीं हटाएगा, लेकिन मुझे पूरा यकीन है कि iostatआउटपुट आपकी ज़रूरत के लिए अधिक विशिष्ट होगा।


3

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

mkdir /tmp/replica
loggedfs /path/to/directory /tmp/replica
mycommand --root=/tmp/replica
fusermount -u /tmp/replica

2

आप इनोटिफ़ाइ-टूल्सinotifywait -m DIRNAME से उपयोग कर सकते हैं ।


-dinotifywait 3.13 में मौजूद नहीं है। क्या आपका मतलब है -m?
l0b0

@ l0b0: ओह, मैं git रेपो से 3.14 का उपयोग करता हूं। माफ़ करना। लेकिन मैनपेज बताता है कि यह -mपृष्ठभूमि में चलने और एक आउटफिट की आवश्यकता के अपवाद के समान है ।
टोबियास किंजलर

यह भी -rउपयोगी हो सकता है
टोबियास किन्ज़लर

1
इसका परीक्षण किया। मैं गलतफहमी के लिए माफी चाहता हूं, लेकिन मुझे इसमें दिलचस्पी नहीं है कि कौन सी फाइलें (या यहां तक ​​कि कितनी फाइलें) एक्सेस की गईं, बल्कि आई / ओ की राशि।
l0b0

2
ध्यान दें, यह लिनक्स-विशिष्ट है। बीएसडी के पास केक्यू और पॉटिफाई सिस्टम कॉल हैं, लेकिन मुझे नहीं पता कि क्या वे वास्तव में वही करते हैं जो लेखक अनुरोध कर रहा है।
शॉन जे। गोफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.