शुद्ध सीपी या एससीपी की तुलना में मेरा rsync इतना धीमा क्यों है?


15

मैं एक घुड़सवार शेयर के माध्यम से लिनक्स से विंडोज 7 में फ़ाइलों को स्थानांतरित कर रहा हूं ( लिनक्स पर विंडोज से शेयर माउंट किया गया है ) .. मैं अपने लैन के भीतर पुराने से नई मशीन के लिए बहुत सारे डेटा (यानी लगभग एक टीबी) कॉपी कर रहा हूं । मैं पहले से ही दुर्भाग्यशाली हूं कि मेरे पास केवल 100 एमबी है। स्वाभाविक रूप से मैंने नेत्रहीन रूप से rsync का उपयोग किया लेकिन पहले से ही एक दिन के बाद आश्चर्यचकित हो गया कि यह इतना धीमा क्यों लगता है। प्रगति मीटर को सक्षम करने से मेरा स्थानांतरण दर लगभग 2MB / s दिखा।

इसलिए मैंने एक उचित बड़ी फ़ाइल (800MB) ली और ट्रांसफर टाइमिंग (1) को ट्रैक किया:

cp : 05:33
scp (2): 06:33
rsync : 21:51

1) मैंने प्रत्येक रन 2 के बीच की फाइलों को डिलीट कर दिया
) लोकलहोस्ट के माध्यम से उसी लिनक्स मशीन से सीधे शेयर पर; पूरी तरह से बेकार लेकिन एक प्रगति मीटर प्रदान किया

परीक्षण के रूप में सरल थे

(cp|scp|rsync) <source> <destination>

Scp के लिए host / port को छोड़कर कोई विशेष तर्क नहीं। मैंने भी -Wrsync के लिए स्विच की कोशिश की, लेकिन दस मिनट के बाद रद्द कर दिया। rsync 3.0.3 लेनी पर चल रहा है। कभी भी प्रतिलिपि प्रक्रिया को बाधित करने और फिर से शुरू करने में सक्षम होने के लिए मुझे rsync पर ले जाने में सक्षम होना चाहिए, लेकिन अब मुझे लगता है कि मुझे गंभीरता से इस आवश्यकता पर पुनर्विचार करने की आवश्यकता है।

इतना बड़ा अंतर कैसे संभव है?

अद्यतन / हल:

Rschuler के लिए धन्यवाद मैं इस मामले को हल करने में सक्षम था: दक्षता कारणों से smb बढ़ते के बजाय rsync डेमॉन का उपयोग करें। उक्त DeltaCopy काम करता है, लेकिन कुछ चीजों के लिए बाहर देखना पड़ता है

  • यह एक अच्छा जीयूआई आवरण है लेकिन अगर कुछ गलत हो रहा है, तो यह जानना अच्छा है कि इसे कैसे ठीक किया जाए। ऐसा लगता है कि मैंने अपने उपयोगकर्ता क्रेडेंशियल्स में प्रवेश किया है, जिसके तहत पहली बार गलत तरीके से rsync सेवा चलाना है, लेकिन GUI ने मुझे एक नया सेट करने की अनुमति नहीं दी है। मुझे लगा कि यह एक सेवा के रूप में चल रही है और वहां उचित प्रमाण स्थापित करने में सक्षम है
  • कनेक्शन की अनुमति देने के लिए पोर्ट को फ़ायरवॉल में मैन्युअल रूप से जोड़ने की आवश्यकता है
  • व्यक्तिगत स्वाद: सुनिश्चित करें कि शेयर या तो पासवर्ड से सुरक्षित हैं या यदि नहीं, तो शायद यह सुनिश्चित करें कि सेवा स्वचालित रूप से विंडोज़ के साथ शुरू नहीं होती है; शायद ज़रुरत पड़े
  • लिपटे rsync बाइनरी एक देशी विंडोज पोर्ट नहीं है, लेकिन साइबरविन पर बनाता है। हालाँकि, निहित साइबर DLL ठीक से UTF8 को हैंडल नहीं करता है और गैर-असिसी पात्रों को संभाला है। Http://www.okisoft.co.jp/esc/utf8-cygwin/ से एक निश्चित DLL प्राप्त करें

उसके बाद, स्थानांतरण रेटेड 2 एमबी / एस से ~ 8 एमबी / एस तक कूद गया; बिलकुल शानदार!


क्या आपने परीक्षण के प्रत्येक रन के बीच गंतव्य फ़ाइल को हटा दिया था? यदि गंतव्य फ़ाइल पहले से मौजूद है और मेटा-डेटा सही नहीं था, तो उसे स्रोत और गंतव्य दोनों की जाँच करने की आवश्यकता होगी।
Zoredache

@Zoredache: मैंने रनों के बीच फ़ाइलों को हटा दिया; भी -Wस्विच है कि अनदेखी करने के लिए माना जाता है
मार्क

जवाबों:


18

(शेयर लिनक्स पर विंडोज से मुहिम शुरू की है)

वही तुम्हारी समस्या है। rsync गंतव्य पर रोलिंग चेकसम कर रहा है। खिड़कियां साझा करती हैं। आप चेकसम की गणना करने के लिए नेटवर्क का सारा डेटा खींच रहे हैं। (संभवतः एक से अधिक बार)।

आपको जो करने की आवश्यकता है, वह है दोनों मशीनों पर चलने वाली rsync। इस तरह से केवल अंतर (और चेकसम) को नेटवर्क केबल पर स्थानांतरित किया जाएगा। DeltaCopy एक विंडोयुक्त rsync है। आपके पास जाने के लिए पर्याप्त अच्छे डॉक्स हैं।

इस प्रश्न का उत्तर देने के लिए एक बेहतर स्पष्टीकरण के लिए मतदान का जवाब देखें कि मुझे क्यों लगता है कि आप rsync का दुरुपयोग कर रहे हैं।


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