कैसे? या टीएल; डीआर
मैंने जो सबसे तेज़ तरीका पाया है, वह संयोजन है tar, mbufferऔर ssh।
उदाहरण के लिए:
tar zcf - bigfile.m4p | mbuffer -s 1K -m 512 | ssh otherhost "tar zxf -"
इसका उपयोग करके मैंने 1Gb लिंक पर 950 एमबी / एस से अधिक निरंतर स्थानीय नेटवर्क स्थानान्तरण प्राप्त किया है। प्रत्येक टास्क कमांड में पथों को बदलें जो आप स्थानांतरित कर रहे हैं उसके लिए उपयुक्त हो।
क्यों? mbuffer!
एक नेटवर्क पर बड़ी फ़ाइलों को स्थानांतरित करने में सबसे बड़ी अड़चन है, अब तक, डिस्क I / O। इसका उत्तर है mbufferया buffer। वे काफी हद तक समान हैं लेकिन mbufferकुछ फायदे हैं। डिफ़ॉल्ट बफ़र का आकार 2MB के लिए mbufferऔर 1MB के लिए है buffer। बड़े बफ़र्स कभी खाली नहीं होने की अधिक संभावना है। एक ब्लॉक आकार चुनना जो लक्ष्य और गंतव्य फाइलसिस्टम दोनों पर देशी ब्लॉक आकार का सबसे कम सामान्य गुण है, सबसे अच्छा प्रदर्शन देगा।
बफ़रिंग वह चीज़ है जो सभी अंतर बनाती है! यदि आपके पास है तो इसका उपयोग करें! यदि आपके पास यह नहीं है, तो इसे प्राप्त करें! (m}?bufferप्लस का उपयोग करना अपने आप में किसी भी चीज़ से बेहतर है। यह लगभग सचमुच धीमी नेटवर्क फ़ाइल स्थानांतरण के लिए एक रामबाण है।
यदि आप एक से अधिक फ़ाइलों tarको एक ही डेटा स्ट्रीम में "गांठ" करने के लिए स्थानांतरित कर रहे हैं । यदि यह एक एकल फाइल है जिसका आप उपयोग कर सकते हैं catया I / O पुनर्निर्देशन कर सकते हैं । tarबनाम ओवरहेड catसांख्यिकीय रूप से महत्वहीन है, इसलिए मैं हमेशा उपयोग करता हूं tar(या zfs -sendजहां मैं कर सकता हूं) जब तक कि यह पहले से ही एक टारबॉल न हो । इनमें से किसी की भी आपको मेटाडेटा देने की गारंटी catनहीं है (और विशेष रूप से नहीं)। यदि आप मेटाडेटा चाहते हैं, तो मैं इसे आपके लिए एक अभ्यास के रूप में छोड़ दूँगा।
अंत में, sshपरिवहन तंत्र के लिए उपयोग करना सुरक्षित है और बहुत कम ओवरहेड किया जाता है। फिर, sshबनाम ncका उपरि सांख्यिकीय रूप से महत्वहीन है।