Rsync खुद को कांटे क्यों देता है? और इस तरह की एक कांटेदार प्रक्रिया लगभग थोड़े निष्क्रिय क्यों है (जैसा कि iotop में देखा गया है)?


11

यह यहां बताई गई बात का जिक्र है और मैं भी इसका अनुभव कर रहा हूं।

मेरे एक सर्वर में, मैं एक ही मशीन पर मुहिम शुरू करने के लिए एक विशाल निर्देशिका (300 जीबी से अधिक आकार) का बैकअप लेने के लिए, एक rsync चलाता था। निर्देशिका में rsynced किया जा रहा है निर्देशिका और फ़ाइलों के हजारों शामिल हैं। मैंने 'nohup' के साथ एक एकल rsync कमांड जारी किया, और फिर '&' कमांड का उपयोग करके इसे पृष्ठभूमि में धकेल दिया। रिमोट बैश शेल (पोटीन का उपयोग करके) पर दिया गया पूरा कमांड था:

nohup rsync -avh /some/local/dir /backup/ >> /opt/rsync.dec22.log &

फिर बस यह जांचने के लिए कि किस दर पर डेटा की प्रतिलिपि बनाई जा रही है, मैंने 'iotop' कमांड का उपयोग किया, और पाया कि 3 rsync समान मापदंडों के साथ चल रहे थे। खोज करने पर मुझे ऊपर का लिंक मिला जिसमें लिखा था कि यह सामान्य है।

लेकिन सिस्टम पर चल रहे केवल और केवल rsync प्रक्रियाओं की निगरानी के लिए एक iotop कर रहा है, मैं देखता हूं कि एक प्रक्रिया फ़ाइलों को पढ़ रही है, एक उन्हें लिख रहा है, लेकिन एक बेकार है। व्यवहार अच्छा लगता है, क्योंकि एक प्रक्रिया एक समय में केवल एक ही काम कर रही है, लेकिन 3 प्रक्रिया क्या कर रही है (नीचे की छवि में मध्य के रूप में देखा जाता है)?

Iotop कमांड मैंने इस्तेमाल किया था:

iotop -p22250 -p22251 -p22252

यहाँ iotop कमांड आउटपुट के लिए स्क्रीनशॉट है:

iotop कमांड आउटपुट 3 rsync प्रक्रिया दिखा रहा है

मैं इस कारण से पूछ रहा हूं कि मैं rsync का बहुत उपयोग करता हूं, और दीर्घकालिक लाभ के लिए इसके व्यवहार को समझना चाहता हूं। मैंने मैनुअल भी पढ़ा, लेकिन यह कहता है कि कुछ भी नहीं है।

जवाबों:


9

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

फिर नियंत्रक है। जैसा कि IO ऑपरेशंस कुछ निश्चित जोखिम के साथ आते हैं, IO समस्या के कारण कुल अवरोध या क्रैश नहीं होना चाहिए। तो, यह प्रत्येक कनेक्शन के लिए एक कांटा बनाता है और पृष्ठभूमि में बैठता है।


ज्ञान के लिए धन्यवाद। मैं इसे नेटवर्क पर अलग-अलग कंप्यूटरों की दृष्टि से समझता हूं, प्रत्येक कंप्यूटर सिंक में काम का एक हिस्सा है। लेकिन क्या आप मुझे उस व्यवहार प्रलेखन का भी उल्लेख कर सकते हैं जहाँ मैं rsync के बारे में और इस अवधारणा के बारे में अधिक सामान पढ़ सकता हूँ? यह भी जानना चाहेंगे कि रीडिंग प्रोसेस द्वारा जो प्रक्रिया लिखी जा रही है, उसे रीड डेटा कैसे पास करता है? क्या IPC की अवधारणा का उपयोग किया जा रहा है?
गौतम सोमानी

3
@GautamSomani आधिकारिक rsync पेज इस तरह के लिए आपका सबसे अच्छा स्रोत होगा। rsync.samba.org इसके अलावा, यह कैसे काम करता है यह यहां उपलब्ध है: rsync.samba.org/how-rsync-works.html यदि आप और भी अधिक विवरण चाहते हैं, तो आपको संभवतः स्रोत में खुदाई करनी होगी।
क्रोधी

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

@drookie यह बात नहीं है अगर यह स्थानीय या नेटवर्क पर है। यह उसी तरह काम करता है। यह इस व्यवहार को भी बताता है कि आधिकारिक डॉक्टर I ने आपकी टिप्पणी के ठीक ऊपर लिंक किया है, जो यह भी कहता है, "या तो स्थानीय स्थानांतरण के भीतर, रिमोट शेल के माध्यम से या नेटवर्क सॉकेट के माध्यम से।"
क्रोधी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.