tl; धी में धीमी गति से स्थानांतरण लिंक, सेक, अन्यथा नहीं। नीचे एक संपीड़न गति परीक्षण, एक बैंडविड्थ रूपांतरण उपकरण का लिंक और कुछ जानकारी है।
rsync
यदि इंटरमीडिएट लिंक "धीमा पर्याप्त" है, तो संपीडन का उपयोग केवल तभी गति देगा, जब कि एक छोर में मौजूद मशीन संचार लिंक को संतृप्त करने के लिए पर्याप्त त्वरित रूप से संपीड़ित डेटा स्ट्रीम का उत्पादन करने में सक्षम हो।
तो, सबसे धीमी कड़ी क्या है जिस पर मुझे कुछ भी हासिल करने के लिए संपीड़न का उपयोग करना चाहिए?
निम्नलिखित एक बहुत ही अवैज्ञानिक परीक्षा है, जो यह बताएगी कि कितनी जल्दी gzip
डेटा का उत्पादन कर सकती है, और इसका मतलब यह है कि क्या आपको अपने नेटवर्क के थोक हस्तांतरण को सामान्य रूप से संपीड़ित करना चाहिए।
इनपुट डेटा परीक्षण के परिणाम को बहुत बदल देगा । मैं अपने कंप्यूटर पर एक असम्पीडित (!) नियमित फाइल का उपयोग कर रहा हूं जो कि आमतौर पर नेटवर्क पर स्थानांतरित किए जाने वाले डेटा के प्रकार का प्रतिनिधि हो सकता है। /dev/zero
(असीमित शून्य का उत्पादन) का उपयोग करना भ्रामक होगा क्योंकि जीरो की एक धारा को संपीड़ित करना बहुत आसान /dev/random
होगा , और उपयोग करना विपरीत कारण के लिए भ्रामक होगा। इसलिए इसके बजाय मैं अपनी $HOME/local
निर्देशिका की एक टार फ़ाइल का उपयोग करता हूं , जिसमें सॉफ्टवेयर है जो मैंने अपने में इंस्टॉल किया है $HOME
। फ़ाइल अपने आप में असम्पीडित है, लेकिन इसमें बाइनरी फ़ाइलों, छोटी संपीड़ित फ़ाइलों और स्रोत / पाठ फ़ाइलों का मिश्रण शामिल है, और क्या मैं इसे डिफ़ॉल्ट सेटिंग के साथ संपीड़ित करूंगा, gzip
यह 64% से 64 MiB से 22 MiB तक सिकुड़ जाएगा।
$ gzip -c local.tar | dd of=/dev/null
43092+4 records in
43093+1 records out
22063854 bytes transferred in 2.819 secs (7825741 bytes/sec)
मैं यह महसूस करने के लिए कुछ समय करता हूं कि औसत क्या हो सकता है, और यह लगभग 7800000 बाइट्स / एस के लिए आता है।
फिर मैं एक नेटवर्क बैंडविड्थ कैलकुलेटर का उपयोग करता हूं यह देखने के लिए कि यह किस रूप में परिवर्तित होता है। इस विशेष मामले में, यह एक "100Mb ईथरनेट" वायर्ड लिंक की क्षमता के तहत होता है, "VDSL डाउनलोड" इंटरनेट अपलिंक की तुलना में तेज़, "802.11 [a / g]" वायरलेस लिंक की तुलना में थोड़ा तेज, और कहीं-कहीं "ब्लूटूथ v3.0" (धीमा) और "यूएसबी 2.0" (तेज) के बीच में।
इसका मतलब यह है कि अगर मैं किसी भी चीज से अधिक तेजी से कम्प्रेशन का उपयोग कर रहा हूं , तो सम्पीडन संभवतः फ़ाइल के हस्तांतरण को धीमा कर देगा ।
rsync
सम्पीडन करने के लिए ठीक उसी लाइब्रेरी का उपयोग नहीं किया जा सकता है gzip
, लेकिन ऊपर आपको कम से कम एक संकेत देगा।
rsync
हालांकि संपीड़न से अधिक, जैसा कि आप जानते हैं, और वास्तविक गति में वृद्धि केवल [बिट्स] फाइलों को स्थानांतरित करने से होती है।
मेरे अपने अनुभव में, rsync
पिछले 10 वर्षों में कम से कम लाभकारी उपयोग हुआ है, क्योंकि नेटवर्क की बैंडविड्थ बढ़ी है (जहां मैं हूं)।
वृद्धिशील बैकअप करने के लिए, मैं निश्चित रूप से --link-dest
विकल्प की जांच करने की सिफारिश करूंगा (इसका क्या हस्तांतरण के साथ कोई लेना-देना नहीं है, केवल चीजों को लक्ष्य पर कैसे संग्रहीत किया जाता है)। इसके अलावा, यदि आप इसे SSH से अधिक कर रहे हैं, तो संपीड़न का उपयोग न करें यदि आपका SSH कनेक्शन पहले से ही संपीड़ित है, और केवल SSH कनेक्शन (सुरंगों आदि) को संकुचित करें, जो धीमे लिंक पर हैं, उपरोक्त कारणों से।