सवाल मेरा rsync इतना धीमा क्यों है?


मेरा लैपटॉप और मेरा वर्कस्टेशन दोनों गिगाबिट स्विच से जुड़े हुए हैं। दोनों लिनक्स चल रहे हैं। लेकिन जब मैं फाइलों की प्रतिलिपि बनाता हूं rsync, यह बुरी तरह से प्रदर्शन करता है।

मुझे लगभग 22 एमबी / एस मिलते हैं। क्या मुझे सैद्धांतिक रूप से लगभग 125 एमबी / एस नहीं मिलना चाहिए? यहां सीमित कारक क्या है?

संपादित करें: मैंने कुछ प्रयोग किए।

लैपटॉप पर प्रदर्शन लिखें

लैपटॉप में पूर्ण डिस्क एन्क्रिप्शन वाला एक xfs फाइल सिस्टम है। यह उपयोगकर्ता है aes-cbc-essiv:sha256 256 बिट्स कुंजी लंबाई के साथ सिफर मोड। डिस्क लिखने का प्रदर्शन है 58.8 एमबी / एस

iblue@nerdpol:~$ LANG=C dd if=/dev/zero of=test.img bs=1M count=1024
1073741824 Bytes (1.1 GB) copied, 18.2735 s, 58.8 MB/s

वर्कस्टेशन पर प्रदर्शन पढ़ें

जिन फ़ाइलों की मैंने प्रतिलिपि बनाई है वे एक सॉफ्टवेयर RAID-5 पर 5 एचडीडी से अधिक हैं। हमलावर के शीर्ष पर एक एलवीएम है। वॉल्यूम स्वयं एक ही सिफर के साथ एन्क्रिप्ट किया गया है। वर्कस्टेशन में एक एफएक्स -8150 सीपीयू है जिसमें मूल एईएस-एनआई निर्देश सेट है जो एन्क्रिप्शन को गति देता है। डिस्क पढ़ने का प्रदर्शन है 256 एमबी / एस (कैश ठंडा था)।

iblue@raven:/mnt/bytemachine/imgs$ dd if=backup-1333796266.tar.bz2 of=/dev/null bs=1M
10213172008 bytes (10 GB) copied, 39.8882 s, 256 MB/s

नेटवर्क प्रदर्शन

मैं दो ग्राहकों के बीच iperf भाग गया। नेटवर्क प्रदर्शन है 9 3 9 एमबी / एस

iblue@raven $ iperf -c 94.135.XXX
------------------------------------------------------------
Client connecting to 94.135.XXX, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 94.135.XXX port 59385 connected with 94.135.YYY port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.09 GBytes   939 Mbits/sec

40
2018-04-07 23:04


मूल


rsync: // प्रोटोकॉल या एसएसएच पर सुरंग? उत्तरार्द्ध में बहुत निश्चित प्रदर्शन सीमाएं हैं¹। - ephemient


जवाब:


उच्च CPU उपयोग को कम करने का एक और तरीका है लेकिन फिर भी rsync की कार्यक्षमता को बनाए रखना, rsync / SSH से rsync / NFS तक जाकर है। आप उन पथों को निर्यात कर सकते हैं जिन्हें आप एनएफएस के माध्यम से कॉपी करना चाहते हैं और फिर एनएफएस माउंट से अपने गंतव्य स्थान पर स्थानीय रूप से rsync का उपयोग करें।

एक डब्ल्यूडी माइबुक लाइव नेटवर्क डिस्क से एक परीक्षण में, एक गीगाबिट नेटवर्क पर NAS से एक या अधिक rsyncs 2 स्थानीय यूएसबी डिस्क की ओर 10 एमबी / सेकंड (सीपीयू: 80% यूएसआर, 20% sys) की प्रतिलिपि बनाने के बाद कॉपी नहीं करेगा एनएफएस और एनएफएस शेयर से दोनों डिस्क पर स्थानीय रूप से rsyncing मुझे कुल 45 एमबी / सेकंड (यूएसबी 2 डिस्क दोनों अधिकतम) और थोड़ा सीपीयू उपयोग मिला। Rsync / SSH का उपयोग करते समय डिस्क उपयोग लगभग 6% था और rsync / NFS का उपयोग 24% के करीब था, जबकि यूएसबी 2 डिस्क दोनों 100% के करीब थे।

इसलिए हमने प्रभावी रूप से NAS CPU से बाधा को यूएसबी 2 डिस्क दोनों में स्थानांतरित कर दिया।


18
2017-08-02 22:50



चेतावनी दी जानी चाहिए कि, एनएफएस कोई सुरक्षा प्रदान नहीं करता है (यानी: एन्क्रिप्शन)। - WhyNotHugo
यह बहुत अच्छा काम किया! अब लगभग पूर्ण गीगाबिट गति प्राप्त हो रही है जब मुझे केवल ~ 100 एमबी / एस मिल रहा था। - PHLAK
क्या आप बता सकते हैं कि rsync / NFS का उपयोग कैसे करें? मैं 2TCloud ड्राइव के बीच 8Tb स्थानांतरित करने की कोशिश कर रहा हूं और यह ssh (4MB / sec) पर rsync के साथ हमेशा के लिए लेता है - FMaz008


कारणों में शामिल हो सकते हैं: संपीड़न, एन्क्रिप्शन, प्रतिलिपि बनाई जा रही फ़ाइलों की संख्या और आकार, आपके स्रोत और गंतव्य सिस्टम की डिस्क I / O क्षमताओं, टीसीपी ओवरहेड ... ये सभी कारक हैं जो आपके द्वारा संचालित किए जा रहे स्थानांतरण प्रकार को प्रभावित कर सकते हैं।

कृपया आप जिस rsync कमांड का उपयोग कर रहे हैं उसे पोस्ट करें और दोनों कंप्यूटरों के विनिर्देशों पर विवरण प्रदान करें।


संपादित करें: एन्क्रिप्शन अक्सर rsync गति में एक सीमित कारक है। आप एसएसएच और लाइटर-वेट एन्क्रिप्शन साइफर जैसे दौड़ सकते हैं arcfour

कुछ इस तरह: rsync -e "ssh -c arcfour"

या आप एक संशोधित rsync / ssh का उपयोग कर सकते हैं जो एन्क्रिप्शन को अक्षम कर सकता है। एचपीएन-एसएसएच देखें: http://psc.edu/networking/projects/hpn-ssh

लेकिन फिर, आपके वर्कस्टेशन की तुलना में आपके लैपटॉप में धीमी गति है। लिखने को अवरुद्ध किया जा सकता है और I / O आपके लैपटॉप पर जा रहा है। आपकी वास्तविक प्रदर्शन अपेक्षाएं क्या हैं?


26
2018-04-07 23:12



लैपटॉप में धीमे (7200 आरपीएम - 5400 आरपीएम) डिस्क होते हैं क्योंकि वे कम शक्ति का उपयोग करते हैं। आरएसआईएनसी क्या कर रहा है इसके आधार पर यह आसानी से आपका सीमित कारक हो सकता है। - Ladadadada
धन्यवाद। के लिये rsyncning एक से dm-तहखाने एन्क्रिप्टेड डिस्क एक परमाणु प्रोसेसर से जुड़ा हुआ है ecryptfs एआरएम NAS बॉक्स, इसने मेरी स्थानांतरण गति 4 एमआईबी / एस से 6 एमआईबी / एस तक बदल दी। rsync --protocol=29 -auh --progress /mnt/esata/pics/ -e "ssh -c arcfour" diskstation:/volume1/pics कुछ नहीं से बेहतर। - Sebastian
यह जवाब Rsync -azP से rsync -aPe "ssh -c arcfour" पर जाकर स्थानांतरण की गति को 4 एमबी / सेक से 25 एमबी / सेकेंड तक दो माइक्लाउड मिरर ड्राइव के बीच बढ़ा दिया गया। प्राप्त इकाई सीपीयू अब अधिकतम हो गया है। (इसका मतलब यह है कि मैं तेजी से ट्रांसफर कर रहा हूं क्योंकि इकाई डेटा लिख ​​सकती है) - FMaz008


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

समाधान 1: एक rsync सर्वर सेट अप करना

इसका उपयोग करने के लिए rsync प्रोटोकॉल, आपको एक rsyncd सर्वर स्थापित करना होगा। वहां था एक /etc/init.d/rsyncमेरे लैपटॉप पर लिपि, इसलिए मैंने अनुमान लगाया, rsyncd चल रहा था। मैं गलत था। /etc/init.d/rsync start चुपचाप मौजूद है, जब rsync में सक्षम नहीं है /etc/default/rsync। फिर आपको इसे भी कॉन्फ़िगर करना होगा /etc/rsyncd.conf, जो एक दर्द है।

यदि आप यह सब पूरा कर लेते हैं, तो आपको इसका उपयोग करना होगा rsync file.foo user@machine::directory। कृपया ध्यान दें, कि वहां हैं दो कोलन

समाधान 2: पुराना स्कूल आरएसएस-सर्वर

हालांकि, कॉन्फ़िगरेशन मेरे लिए बहुत जटिल था। तो मैंने बस स्थापित किया और rsh-server मेरे लैपटाप पर। वर्कस्टेशन पर rsync को आमंत्रित करना -e rexec फिर एसएसएच के बजाय आरएसएस का उपयोग करता है। जो तब प्रदर्शन को लगभग दोगुना कर दिया गया 44.6 एमबी / एस, जो अभी भी धीमा है। गति के बीच बाउंस 58 एमबी / एस तथा 33 एमबी / एस, जो इंगित करता है कि कुछ बफर या भीड़ नियंत्रण समस्याएं हो सकती हैं। लेकिन यह इस सवाल के दायरे से बाहर है।


9
2018-04-08 13:25



हम यहां rsync का व्यापक रूप से उपयोग करते हैं और आम तौर पर पूर्ण इंटरफ़ेस गति प्राप्त करते हैं जब तक कि 4K फ़ाइलों की संख्या को पार नहीं किया जाता है। मुझे नहीं लगता कि क्रिप्टो समस्या है जब तक आप कुछ गंभीर रूप से कमजोर हार्डवेयर का उपयोग नहीं कर रहे हैं। - Magellan
क्या एक थिंकपैड आर 61 में इंटेल कोर 2 डुओ टी 8100 गंभीर रूप से हार्डवेयर को कम करता है? यदि नहीं, तो rshync से rshync rshync से rshync पर फिर क्यों है? - iblue
फ़ाइलों की संख्या के साथ, एन्क्रिप्शन अक्सर rsync गति में एक सीमित कारक होता है। इसे सुधारने के लिए मानक दृष्टिकोण या तो हल्के एन्क्रिप्शन सिफर के साथ rsync चलाने के लिए हैं rsync -e "ssh -c arcfour" या एक संशोधित rsync / ssh कोशिश कर रहा है जो एन्क्रिप्शन को अक्षम कर सकता है। देख hpn-ssh: psc.edu/networking/projects/hpn-ssh - ewwhite


ये एक बहुत पुराने प्रश्न और उत्तर हैं, लेकिन एक महत्वपूर्ण बात गायब है: यदि आप पहले से संपीड़ित या एन्क्रिप्टेड डेटा की प्रतिलिपि बना रहे हैं, तो संपीड़न बंद करें।

यदि आपका डेटा न तो संपीड़ित है और न ही एन्क्रिप्टेड है, तो भी आप इसे केवल एक बार संपीड़ित करना चाहते हैं! -एन, एसएसएच के साथ संकुचित संपीड़न -सी (डिफ़ॉल्ट रूप से हो सकता है)। मैंने परीक्षण नहीं किया है जो मेरे डेटा को संकुचित होने के बाद बेहतर है।

जबकि मैं इसमें हूं, आप एक्स अग्रेषण और टीटीवी आवंटन को बंद कर सकते हैं, जिसके परिणामस्वरूप:

rsync -avh -e "ssh -x -T -c arcfour -o Compression=no" $src $dst

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


2
2017-07-22 21:28



मान्य विकल्प, लेकिन मुझे लगता है कि -x -T और -o संपीड़न = स्थानांतरण गति पर केवल थोड़ा प्रभाव नहीं पड़ा। - FMaz008
यह भी उल्लेखनीय है कि OpenSSH 6.7 arcfour अक्षम करता है। - bparker
वह दयालुता @bparker की तरह है! क्या हम जानते हैं कि शेष उपलब्ध सिफर सीपीयू पर सबसे हल्का है? - Law29