लिनक्स एनएफएस सर्वर प्रदर्शन का विश्लेषण


22

हम अपने अनुप्रयोगों में संभावित बाधाओं को ट्रैक करने में मदद करने के लिए हमारे एनएफएस सर्वर का कुछ विश्लेषण करना चाहते हैं। सर्वर SUSE एंटरप्राइज़ लिनक्स 10 चला रहा है।

जिन चीजों को मैं जानना चाहता हूं वे हैं:

  • कौन सी फाइलें किस क्लाइंट द्वारा एक्सेस की जा रही हैं
  • प्रति-ग्राहक आधार पर थ्रूपुट पढ़ें / लिखें
  • अन्य RPC कॉल द्वारा ओवरहेड लगाया गया
  • एक ग्राहक की सेवा के लिए अन्य एनएफएस अनुरोधों, या डिस्क I / O पर प्रतीक्षा करने में समय व्यतीत होता है

मुझे पहले से उपलब्ध आँकड़ों के बारे में पता है /proc/net/rpc/nfsdऔर वास्तव में मैंने उन्हें गहराई से वर्णन करते हुए एक ब्लॉग पोस्ट लिखा है । मैं जो देख रहा हूं वह गहरी खुदाई करने का एक तरीका है और यह समझने में मदद करता है कि किसी ग्राहक द्वारा देखे गए प्रदर्शन में कौन से कारक योगदान दे रहे हैं। मैं उस भूमिका का विश्लेषण करना चाहता हूं जो हमारे क्लस्टर पर एक एप्लिकेशन के प्रदर्शन में एनएफएस सर्वर निभाता है ताकि मैं इसे सर्वोत्तम तरीके से अनुकूलित करने के तरीकों के बारे में सोच सकूं।


ऐसा लगता है कि सिस्टम टैप किस तरह के लिए लिखा गया था। डॉक्स थोड़ा बकवास है, लेकिन मुझे लगता है कि आप इस तरह के विश्लेषण का उपयोग करने के लिए कुछ कोड़ा मार सकते हैं। sourceware.org/systemtap/examples/keyword-index.html
Cian

जवाबों:


2

बस एक विचार, तारों के साथ nfs यातायात को सूँघने की कोशिश करें। आपको बता सकता है कि किस उपयोगकर्ता ने कौन सी फ़ाइल एक्सेस की है:

tshark -R nfs -i eth0

2

मुझे सभी उपलब्ध अलग-अलग * स्टेट यूटिलिटीज के बारे में कहना है, nfsstat अब तक सबसे खराब है! यह आपको काउंटरों के एक समूह को देखने की क्षमता देता है, लेकिन यह सब है। यदि आप उन्हें दो बार देखते हैं, तो आपको यह पता लगाने का प्रयास करना होगा कि प्रत्येक काउंटर कितना बदल गया है और यदि आप परिवर्तन की दर जानना चाहते हैं, तो नमूनों के बीच सेकंड की संख्या से विभाजित करने की आवश्यकता है। सभी निष्पक्षता में, nfsstat कई साल पहले की तारीख करता है जब चीजें अभी भी बहुत कच्चे थे और अब उत्पादन प्रारूप को बदलने के इच्छुक किसी के द्वारा बाधा नहीं है क्योंकि यह शायद बहुत सारी चीजों को तोड़ देगा।

Nfs को मॉनिटर करने के लिए कलेक्ट का उपयोग करने के लिए, यह प्रारूप को पढ़ने में बहुत आसान में nfsstat आउटपुट प्रदान करता है, लेकिन क्या बेहतर है कि आप इसे घंटों या दिनों तक चला सकते हैं और पृष्ठभूमि में आपके द्वारा एकत्र किए गए डेटा को वापस खेल सकते हैं। यह देखने के अनुरोध के अनुसार कि प्रक्रियाएँ क्या कर रही हैं, कलेक्ट प्रक्रिया डेटा भी एकत्रित कर सकती है जिसमें I / O प्रत्येक प्रक्रिया कितनी है और यहाँ तक कि शीर्ष I / O उपयोगकर्ताओं को दिखाते हुए इसे वापस खेलना भी शामिल है। आप वास्तविक समय में शीर्ष सुविधा का भी उपयोग कर सकते हैं।

यदि आप डिस्क थीम देखना चाहते हैं तो खुद को एकत्रित कर सकते हैं और समन्वित प्रदर्शन में सब कुछ प्रदर्शित कर सकते हैं।

इसे देखें ... -mark


2

कलेक्ट (विशेषकर इसका एनएफएस सबसिस्टम ) एक बहुत अच्छी उपयोगिता है जो आपके विश्लेषण के लिए उपयोगी हो सकती है लेकिन यह आपकी आवश्यकताओं की सूची से मेल नहीं खाती है। मैं किसी भी लिनक्स उपयोगिता के बारे में पता नहीं है जो करता है

(कृपया मुझे इस ऑफ-टॉपिक नोट को जोड़ने दें: एक सॉफ्टवेयर है जो आपकी आवश्यकताओं से मेल खाता है: सन का DTrace- आधारित एनालिटिक्स (PDF) - लेकिन दुर्भाग्य से लिनक्स पर उपलब्ध नहीं है। आपको ब्रेंडन ग्रीग के ब्लॉग में बहुत सारे बेहतरीन उदाहरण मिलेंगे जो इसका उदाहरण देते हैं। इस उपकरण की क्षमताएं।)



1

मेरी राय में यह आज के औजारों के साथ समस्या पर प्रकाश डालता है। यहाँ हम nfsstat, iostat और iotop सहित कम से कम 3 का उल्लेख कर रहे हैं। तब वायरशेयर और nfsreplay का उल्लेख था। क्या यह वास्तव में चीजों को करने के लिए एक सामान्य तरीके की तरह लगता है? वायरशर्क के अलावा अन्य सभी अपने आप में एक श्रेणी है, क्या आप 1 टूल पसंद नहीं करेंगे?

सलामी बल्लेबाजों के लिए, जबकि मुझे आईओसैट का आउटपुट बहुत उपयोगी लगता है, उन सभी के साथ संख्याओं में पढ़ना बहुत कठिन है। कलेक्ट ने एक ही डेटा की रिपोर्ट की, लेकिन आंखों पर बहुत आसान स्वरूपित किया। आप पहले से ही जानते हैं कि मैं nfsstat के बारे में क्या सोचता हूं और चूंकि कलेक्ट किसी भी डेटा को वापस खेल सकता है, इसलिए 'रिप्ले' उपयोगिता की कोई आवश्यकता नहीं है। 'Iotop' के लिए, कलेक्ट में I / O शामिल कुछ भी द्वारा सॉर्ट की गई प्रक्रियाओं को भी दिखाया जा सकता है।

तो वहाँ आप यह सब भी है, टाइमस्टैम्प के साथ पूरा करें। यदि आपको एक महीन निगरानी अंतराल की आवश्यकता है, तो आप नमूना को 0.1 या 0.5 सेकंड या बीच में कुछ भी वापस क्रैंक कर सकते हैं, हालांकि यदि आप इस तेजी से प्रक्रियाओं की निगरानी करते हैं, तो आप अधिक ओवरहेड उत्पन्न करेंगे, लेकिन किसी भी प्रक्रिया की निगरानी उपयोगिता के साथ होगी।

और अंतिम बोनस कुछ भी है जिसे आप कलेक्ट के साथ इकट्ठा करते हैं आप एक स्प्रेडशीट में लोड कर सकते हैं और आसानी से प्लॉट कर सकते हैं या कोलप्लेट का उपयोग कर सकते हैं जो कि कलेक्ट-बर्तनों का हिस्सा है।

-निशान


1

आप http://nfswatch.sourceforge.netnfswatch से कोशिश करना चाह सकते हैं

आप कुछ नमूना आउटपुट http://prefetch.net/blog/index.php/2009/06/16/monitoring-nfs-operations-with-nfswatch/ पर देख सकते हैं

nfswatchकी तरह है top(हालांकि मुझे यकीन नहीं है कि अगर वहाँ एक बैच मोड है)। एक बार जब आप चल रहे होते हैं तो आप एनएफएस ग्राहकों को अपने एनएफएस सर्वर का उपयोग करने के लिए एक कुंजी (जैसे "सी" मारकर प्रदर्शन को बदल सकते हैं)।

हालांकि, मेरे संक्षिप्त परीक्षण में, nfswatchNFSv4 के साथ काम करना प्रतीत नहीं होता है।


1
दिलचस्प सुझाव। दरअसल, लेखक खुद कहते हैं कि NFSv4 समर्थित नहीं है और उपकरण को लगभग 3 वर्षों से अपडेट नहीं किया गया है। एक दया के रूप में यह बहुत काम आएगा!
टोनिन

1

मेरे पास इस समय बेहतर उत्तर नहीं हैं, हालांकि आप डिस्क IO का काफी सटीक रूप से अनुसरण कर सकते हैं

iostat -mx <delay in sec.> <devices>

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

फिर साथ में

netstat -plaute | grep nfs

आप वास्तविक समय में प्रत्येक ग्राहक से स्थानांतरित किए गए क्लाइंट कनेक्शन और बाइट देखेंगे। निरंतर डेटा के लिए उस पर लूप। स्क्रिप्ट बनाना काफी आसान होगा जो निरंतर डेटा प्रदान करता है ... मैं इस पर काम कर रहा हूं :)

अब IO प्रति प्रक्रिया प्राप्त करने के लिए, आप उत्कृष्ट iotop का उपयोग कर सकते हैं । आपको अभी भी क्लाइंट्स के साथ nfsd प्रोसेस को मैच करने का तरीका खोजना है, हालाँकि।

किस क्लाइंट के द्वारा फाइल एक्सेस की जा रही है, मैं अटक गया हूं। वास्तव में एक एनएफएस क्लाइंट से वर्तमान में पढ़ी / लिखी गई फाइलें lsof आउटपुट में भी दिखाई नहीं देती हैं।

बस नेटस्टैट पर विस्तार करने के लिए, वॉच -d का उपयोग करके देखें कि होस्ट द्वारा चीजें कैसे बदलती हैं और कैसे सॉर्ट करती हैं

watch -d "netstat -plaute | grep nfs | sort -k 4,5"

यह सबसे अच्छा समाधान है जो मुझे अब तक पता चला है कि कौन सा मेजबान एनएफएस पर यातायात का कारण बन रहा है। फिर मैं क्लाइंट के पास यह पता लगाने के लिए जा सकता हूं कि यह कौन सी फाइल एक्सेस करता है। धन्यवाद!
peschü

0

आप nfsreplay की जाँच करना चाहते हो सकता है। यह पता लगाने में आपकी मदद कर सकता है कि क्या हो रहा है। इसके अलावा, आप यहाँ उपयोगी जानकारी और लिंक पा सकते हैं

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