बेचारे परमानंद पर प्रदर्शन लिखते हैं


15

मैंने ecryptfs और dm-crypt के साथ थोड़ा सा बेंचमार्किंग किया, और कुछ दिलचस्प नतीजे मिले। निम्नलिखित सभी एक Btrfs फाइल सिस्टम के साथ किया गया था, डेटा सिंकिंग को मजबूर करने ddके conv=fdatasyncविकल्प के साथ एक रैमडिस्क से ~ 700MB फ़ाइल कॉपी करने के लिए। प्रत्येक परीक्षण से पहले डिस्क कैश को साफ कर दिया गया था।

No encryption:
 read - 165MB/s
 write - 120MB/s
ecryptfs:
 read - 125MB/s
 write - 15MB/s
dm-crypt:
 read - 150MB/s
 write - 115MB/s
dm-crypt + ecryptfs:
 read - 120MB/s
 write - 15MB/s

अब मुझे समझ में आया कि एन्क्रिप्शन एक कच्चे फाइल सिस्टम की तुलना में धीमा है, हालांकि मैं ecryptfs के साथ बड़े पैमाने पर लिखने के प्रदर्शन की उम्मीद नहीं करता था। क्या यह तथ्य है कि मैं मजबूर कर रहा हूं डेटा सिंकिंग इस परीक्षण को अवास्तविक बनाता है? या क्या कोई विकल्प है जो मैं तेजी से काम कर पाने के लिए पारित करने के लिए पारित कर सकता हूं?

मैं ecryptfs पर फ़ाइल नाम एन्क्रिप्शन का उपयोग कर रहा था, लेकिन इसके अलावा सब कुछ चूक के लिए तैयार था।


बेंचमार्किंग मुश्किल हो सकती है, और कभी-कभी परीक्षण कुछ अप्रत्याशित सीमाएं मारता है, खासकर जब तुल्यकालिक लेखन मजबूर करता है। मैं ecryptfs के आंतरिक कामकाज से परिचित नहीं हूं, लेकिन आपको किसी भी लेखन प्रवर्धन मुद्दों को सुनिश्चित करना चाहिए। क्या ब्लॉक आकार ecryptfs का उपयोग करता है, और आपने dd के लिए क्या निर्दिष्ट किया है? यदि एक बार में ecryptfs 16kb को एन्क्रिप्ट कर देता है और आप ऐसे ब्लॉक लिख रहे होते हैं जो छोटे होते हैं, तो प्रत्येक सिंक एक रीड को ब्लॉक लाने के लिए मजबूर करेगा, फिर डेटा को बदल देगा, फिर एन्क्रिप्ट करेगा और अंत में लिखेगा। यह इनकी तरह प्रदर्शन संख्याओं की व्याख्या कर सकता है।
ketil

जवाबों:


2

के ddबारे में मैन पेज के बारे में fdatasyncपढ़ता है: physically write output file data before finishingतो यह केवल शारीरिक रूप से "एक बार" लिखता है (इसे "प्रत्येक एक्स ब्लॉक या बाइट्स को फ्लश करने के लिए मजबूर नहीं करता है, लेकिन अंत में एक भी फ्लश" के रूप में पढ़ें)। यदि आप ddअपने परीक्षण करने के लिए उपयोग कर रहे हैं , तो यह सबसे सटीक परिणाम प्राप्त करने का सबसे अच्छा तरीका है। इसके विपरीत, उस विशिष्ट ध्वज का उपयोग नहीं करने पर, आपके परिणामों को अवास्तविक रूप से प्रस्तुत किया जाएगा: इसे छोड़ देना संभवतः एन्क्रिप्शन के लिए समय को याद करेगा क्योंकि ddअभी डेटा चारों ओर कॉपी कर रहा है।

फिर भी, मैंने यह भी सोचा था कि आपके परिणामों के लिए कुछ चल रहा था, लेकिन मुझे यह लेख मिला जो लगभग समान दिखाता है: ecryptfs दर्द रहित है। और आपका परीक्षण ( नकल की जा रही एक एकल फ़ाइल ) ईकोक्रिप्ट के लिए सबसे अच्छा मामला है!

जैसा कि ecryptfs हर स्पष्ट-पाठ संस्करण के लिए एक एन्क्रिप्टेड फ़ाइल (अंदर मेटाडेटा के साथ एक कस्टम हेडर के साथ) लिखता है, बहुत सारी छोटी फाइलें होने से भी अधिक प्रदर्शन ड्रॉप होता है।

हालाँकि, ecryptfs के अपने लाभ हैं: आप एन्क्रिप्शन को खोए बिना तुरंत एक एन्क्रिप्टेड फ़ाइल भेज सकते हैं। आपके बैकअप (यह मानते हुए कि आप अपने एन्क्रिप्टेड डेटा का बैकअप ले रहे हैं ) तेजी से होगा क्योंकि आप केवल अपने डेटा के रूप में बड़ी फ़ाइलों की नकल करेंगे (और यदि वे वृद्धिशील हैं तो भी तेजी से, क्योंकि आप केवल संशोधित फ़ाइलों की नकल करेंगे)।

दूसरी ओर, डीएम-क्रिप्ट, तेजी से रास्ता हो सकता है लेकिन आपको एन्क्रिप्शन रखने के लिए पूरे कंटेनर (एक संपूर्ण फाइल सिस्टम) को भेजने की आवश्यकता होगी। और बैकअप भी पूरे कंटेनर से मिलकर बनता है, ज्यादातर मामलों में वृद्धिशील बैकअप करने में सक्षम नहीं है।

मैंने एन्क्रिप्टेड डेटा को होल्ड करने के लिए (और अभी भी उपयोग) दोनों तरीकों (एक ही उपकरण, हालांकि नहीं) का उपयोग किया है: पीसी आधारित ड्रॉपबॉक्स जैसी ऑनलाइन होस्टिंग सेवाओं के माध्यम से सिंक्रनाइज़ रखने के लिए आसान है, लेकिन यह बहुत धीमी है जब परिवर्तन कर रहा है और मुझे अंडरलेइंग फाइल सिस्टम के साथ कुछ समस्याएँ हुई हैं (यह मानता है कि यह फाइलों को लिख सकता है और फाइल सिस्टम पर सीमा से संबंधित मुद्दे पूरी बात को तोड़ देते हैं); मैं ब्लॉक डिवाइस एन्क्रिप्शन पसंद करता हूं: मैं उन्हें सरल विभाजन के रूप में मानता हूं, इसलिए सीमाएं और मुद्दे इतनी बुरी तरह से नहीं टूटते हैं। एकमात्र दोष कंटेनर को कॉपी कर रहा है, जो अधिक समय ले सकता है।

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