OpenVPN ट्राफिक काउन्टर बनाम डिस्क I/O: तीन फरक संख्याहरू
इन्टरफेसका बाइट, प्रक्रियाका अक्षर काउन्टर र भण्डारणमा लेखिएका कुरा फरक काम नाप्छन्। टनेलको परिमाणबाट डिस्कको आकार तय गर्नुअघि तिनको तुलना गर्नुहोस्।
ठूलो फाइल टनेलबाट पठाउनुहोस् र इन्टरफेस काउन्टर फाइलको आकारजति बढ्छ। त्यो संख्यामा त्यही परिमाण डिस्कसम्म पुग्यो भन्ने कुरा केही छैन। यी छलफलमा तीन फरक मापन तुलना गरिन्छ, र तिनले तीन फरक प्रश्नको उत्तर दिन्छन्: कति ट्राफिक नेटवर्क तह पार गर्यो, एउटा प्रक्रियाले सिस्टम कलमार्फत कति बाइट पढ्यो र लेख्यो, र कति काम भण्डारण तहसम्म पुग्यो।
पहिलोलाई तेस्रोसँग तुलना गर्नु सामान्य गल्ती हो, र यसले या त डिस्कको भूत समस्या बनाउँछ या वास्तवमा हुने लेखनहरूलाई बेवास्ता गर्ने क्षमता योजना बनाउँछ। तीनवटै छुट्याउन सकिन्छ, र प्रत्येकको सही प्रयोग छ।
मिसाइने तीन संख्याहरू
इन्टरफेस काउन्टरले नेटवर्क तहमा ह्यान्डल गरिने ट्राफिक वर्णन गर्छन्। ब्यान्डविथ, टनेलको आकार र ट्रान्जिटको मूल्य तय गर्ने बिलिङ मोडेलका लागि यही सही संख्या हो।
प्रक्रियाका अक्षर काउन्टरले पाइप, टर्मिनल र अक्षर यन्त्रहरू सहित कुनै पनि डिस्क्रिप्टरमा पढ्ने र लेख्ने कलमार्फत सारिएका बाइट वर्णन गर्छन्। सिस्टम कलको सीमामा प्रक्रिया कति व्यस्त छ भनी सोध्न यही सही संख्या हो, र यो भण्डारणको बिल होइन।
भण्डारण काउन्टरले कर्नेलले ब्लक यन्त्रमा वा त्यसबाट सार्न खोजेका बाइट वर्णन गर्छन्। क्षमता योजनाका लागि यही सही संख्या हो, तर कर्नेलले आफ्नै हिसाबका सीमाहरू अभिलेख गर्छ: क्यासमा राखिएका पढाइ भण्डारण पढाइ हुँदैनन्, र पछि रद्द भएको लेखन पूरा भएको यन्त्र लेखन हुँदैन।
| Measurement | Question it answers |
|---|---|
| Interface bytes | How much traffic crossed this layer |
rchar and wchar | How much data the process moved through system calls |
read_bytes and write_bytes | How much work reached the storage layer |
फाइल डिस्क्रिप्टर डिस्कमा लेखन किन होइन
प्रयोगकर्ता ठाउँको VPN ले TUN यन्त्रमार्फत कर्नेलसँग प्याकेट साटासाट गर्छ, जो नियमित फाइल होइन, अक्षर यन्त्र हो। त्यसबाट पढ्दा एउटा प्याकेट दिन्छ; त्यसमा लेख्दा एउटा प्याकेट हाल्छ। भण्डारणका लागि तयार पारिने फाइल सामग्रीको कुनै पृष्ठ छैन, र कुनै फाइलसिस्टम मार्ग संलग्न छैन।
त्यसैले व्यस्त टनेलले भण्डारण काउन्टर लगभग नभईकनै विशाल अक्षर काउन्टर देखाउन सक्छ। प्रक्रियाले ती बाइट साँच्चै सार्यो, र कर्नेललाई त्यो गर्न साँच्चै डिस्क आवश्यक थिएन।
cat /proc/$(pgrep -n openvpn)/io
ip -s link show tun0
पहिलो आउटपुटलाई प्रक्रिया सुरु भएदेखिको जम्मा मानेर पढ्नुहोस्, दर मानेर होइन। दोस्रोले त्यही ट्राफिकको इन्टरफेस दृश्य दिन्छ। दुईबीचको ठूलो अन्तर अपेक्षित छ र यसले चुहावट, लाम वा गलत कन्फिगरेसन देखाउँदैन।
बाइट साँच्चै कहाँबाट आउँछन्
लगातार आउटपुटको आफ्नै बजेट हुन्छ, र त्यसलाई पेलोडले होइन, क्रियाहरूले चलाउँछन्। विस्तृत लग स्तर, बारम्बार बदलिने क्लाइन्ट सूची, वा साँघुरो लूपमा दोहोरिने त्रुटिले टनेलले धेरै थोरै बोकिरहेको बेला पनि ठूलो लेखन उत्पन्न गर्न सक्छ।
स्थिति फाइल एउटा अन्तरालमा पुनः लेखिने स्न्यापसट हो, त्यसैले यसको लागत अन्तराल र यसमा कति रेकर्ड छन् भन्नेमा निर्भर हुन्छ। यो प्रत्येक क्लाइन्टको ट्राफिकको चलिरहेको प्रतिलिपि होइन, र अन्तराल छोटो बनाउँदा ट्राफिकको परिमाण नबदली लेखनको परिमाण बदलिन्छ।
ती लेखन खोज्दा स्वामित्व महत्त्वपूर्ण हुन्छ। यदि सेवाले सन्देशहरू लगिङ डेमनलाई दिन्छ भने, जर्नल वा लग फाइल त्यही डेमनले लेख्छ, र बाइटहरू VPN प्रक्रियाको आफ्नै काउन्टरमा होइन, डेमनको हिसाबमा देखिन्छन्। केवल VPN प्रक्रियालाई हेर्दा डिस्कको गतिविधि वा त्यसको अभाव कुनै पनि व्याख्या हुँदैन।
अरू योगदानकर्तालाई बेवास्ता गर्न सजिलो छ: सुरुमा प्रमाणपत्र र कन्फिगरेसनको पढाइ, आफ्नै रेकर्ड लेख्ने हुकहरू, लेखा प्लगइनहरू, क्र्यास डम्पहरू र त्यही होस्टमा असम्बन्धित कामको भार। यीमध्ये कुनै पनि अनुमान टनेलको ट्राफिकलाई लेखिएका बाइटसँग बराबर गरेर लगाउनु हुँदैन।
प्रत्येक काउन्टर ठीकसँग पढ्ने
तीन विवरणले तुलनाको अर्थ छ कि छैन भन्ने तय गर्छन्। प्रक्रियाको पहिचान महत्त्वपूर्ण छ, किनकि पुनः सुरु भएको सेवाले आफ्ना काउन्टर रिसेट गर्छ। समय अन्तराल महत्त्वपूर्ण छ, किनकि जम्मा अंक र प्रति सेकेन्डको चार्ट फरक मापन हुन्। र एकाइ महत्त्वपूर्ण छ, किनकि लग फाइलको हालको आकार पनि दर होइन।
grep -E 'rchar|wchar|read_bytes|write_bytes' /proc/$(pgrep -n openvpn)/io
du -sh /var/log/openvpn 2>/dev/null
journalctl --disk-usage
यदि साँच्चै पेलोड लेखनको शंका छ भने, जसको काम पेलोड भण्डारण गर्नु हो त्यस्तो घटक खोज्नुहोस्: प्याकेट क्याप्चर उपकरण, बडी क्यास गर्ने प्रोक्सी, अभिलेख गर्ने प्लगइन। यीले तिनलाई जति रेकर्ड गर्न भनिन्छ त्यसअनुसार बढ्ने भण्डारण ट्राफिक उत्पन्न गर्छन्, र ती राख्ने तथा पहुँचसम्बन्धी छुट्टै नीति निर्णयमा पर्छन्।
सही संख्यासहित क्षमता योजना
प्याकेट मार्गलाई नेटवर्कका अंकले नाप्नुहोस्: थ्रूपुट, क्रिप्टोग्राफिक प्रशोधन र स्मृतिको चलन। भण्डारणलाई तपाईंले साँच्चै गरेका अवलोकनक्षमता निर्णयले नाप्नुहोस्: लग स्तर, राख्ने अवधि, स्थिति अन्तराल र जानाजानी सक्रिय गरिएको कुनै पनि क्याप्चर।
यी दुई बजेट अलग राख्दा घटना पढ्न पनि सजिलो हुन्छ। सामान्य टनेल ट्राफिकसँग भरिएको डिस्कले लग, क्याप्चर वा असम्बन्धित कुनै कुरातर्फ संकेत गर्छ, र इन्टरफेस काउन्टरले त्यो कहिल्यै व्याख्या गर्दैन। शान्त लगसँगै संतृप्त लिंकले अर्को दिशातर्फ संकेत गर्छ।
गर्न लायक तुलना एउटै प्रकारका मापनबीचको हो। समयसँगै इन्टरफेस बाइट बनाम इन्टरफेस बाइटले तपाईंलाई मार्गबारे बताउँछ। भण्डारण लेखन बनाम भण्डारण क्षमताले तपाईंलाई राख्ने अवधिबारे बताउँछ। तिर्सो तुलना, ट्राफिक बनाम डिस्क, अर्थपूर्ण देखिन्छ मात्र र कहिल्यै हुँदैन।