बाहरी ड्राइव पर कॉपी करते समय प्रगति विंडो सही नहीं है


11

यहां मैं जो लिखने जा रहा हूं, उसे बेहतर तरीके से समझाने के लिए शीर्षक को संपादित करने के लिए स्वतंत्र महसूस करें।

जब मैं उदाहरण के लिए पेन ड्राइव में बड़ी फ़ाइलों को कॉपी करता हूं, तो प्रगति विंडो एक अनुमान दिखाती है कि ज्यादातर समय समाप्त होने के लिए वास्तविक समय और प्रतिशत दिखाने में विफल नहीं होता है, लेकिन ऐसे मामले हैं जहां यह कहता है कि सब कुछ समाप्त हो गया है और प्रगति विंडो बंद कर देता है। मैं पेन ड्राइव निकालने जाता हूं और यह कहता है कि यह अभी भी उपयोग में है। पेन ड्राइव की जाँच करने के बाद मैं देख रहा हूँ कि यह अभी भी फाइलों को कॉपी कर रही है लेकिन इसमें कोई प्रगति विंडो नहीं दिख रही है।

यह केवल बड़ी फ़ाइलों के साथ ही नहीं होता है, यह कई छोटी फ़ाइलों के साथ भी होता है। यदि मैं उन्हें कॉपी करता हूं, तो प्रगति बार उदाहरण के लिए 15 सेकंड कह सकता है और उस समय खत्म कर सकता है, लेकिन वास्तविक समय 1 मिनट हो सकता है और अगले 45 सेकंड के लिए मुझे वास्तव में पेन ड्राइव में प्रकाश को देखने की जरूरत है कि क्या वहां देखने के लिए उस पर वास्तविक गतिविधि है।

मैं यह नहीं जानना चाहता कि इसे कैसे ठीक किया जाए क्योंकि मैंने पढ़ा है कि इसके लिए कितना गहरा सुधार हो सकता है। मैं जानना चाहता हूं कि प्रगति खिड़की एक अनुमान क्यों दिखाती है जो नकल की प्रक्रिया के अनुरूप नहीं है।

क्या यह बाह्य इकाई में कैशे पर निर्भर है?

फ़ाइल का आकार और फ़ाइल प्रभाव की मात्रा सही अनुमान है। उदाहरण के लिए 4 जीबी की 1 फाइल या 4 एमबी की 1000 फाइलें।

क्या कॉन्फ़िगरेशन विकल्प हैं जो व्यवहार को बदल सकते हैं।

इसके समान अन्य प्रश्न भी हैं जैसे कि usb स्टिक में फाइल कॉपी करना कभी खत्म नहीं हुआ लेकिन मैकेनिक पर अधिक ध्यान दिया जाता है कि यह इस तरह का व्यवहार क्यों करेगा।

जवाबों:


6

मुझे लगता है कि आप अपने फाइल मैनेजर के रूप में नॉटिलस का उपयोग कर रहे हैं और यदि ऐसा है तो इस बारे में लंबे समय से बग हैं। टकसाल, फेडोरा, रेड हैट और सभी तरह के प्रभाव का उल्लेख करने के लिए बहुत कुछ। उबंटू इस मुद्दे के बिना नहीं है।

कुछ का सुझाव है कि थंबनेल दृश्य बंद करने से मदद मिलती है। दूसरों ने अपनी आशाओं को "नवीनतम कर्नेल" में रखा, लेकिन यह अभी भी मौजूद है।

समस्या = तेजी से शुरू होती है, फिर धीमी हो जाती है यह इसलिए है क्योंकि जब async के साथ माउंट किया जाता है तो यह कैश को लिख देगा, जब कैश पूरा हो जाता है तो आप "वास्तविक" लिखने की गति देखते हैं।

चारों ओर काम लगता है sudo cp /filetobecopied /dev/nameofdevice

यहाँ पोस्ट एक अन्य का कहना है कि "नकल में काम करता है" काम करता है। मेरी ओर से अपुष्ट।


3
स्पष्ट करने के लिए, कर्नेल सीधे लिखने (प्रदर्शन कारणों के लिए) के बजाय रैम में डेटा को कैश करता है। जब आप इजेक्ट पर क्लिक करते हैं, syncतो पृष्ठभूमि में एक कमांड किया जाता है, जो कैश को फ्लश करता है। बड़ी मात्रा में डेटा के लिए, इसमें कुछ समय लग सकता है।
तीसवीं प्रथा

1
सुझाव: sudo cp / filetobecopied / dev / nameofdevice आपकी फाइल के साथ पूरे फाइलसिस्टम को बदल देगा, आमतौर पर जो आप चाहते हैं वह नहीं ....
लेन्नर्ट रोलैंड

1

यह भी एक समाधान के साथ एक अच्छा जवाब है: https://unix.stackexchange.com/a/181236 यह कहता है:

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

इसलिए, दुर्भाग्य से कार्यक्रम आपको यह नहीं बता सकता है कि बफर को फ्लश करने में कितना समय लगेगा क्योंकि यह नहीं जानता है।

यदि आप कुछ पॉवर-यूजर ट्रिक्स आज़माना चाहते हैं, तो आप उस बफर के आकार को कम कर सकते हैं, जिसे लिनक्स 15728640 (15 एमबी) जैसी चीज़ों की सेटिंग / सिकाई / एसआईएम / वीएम / डर्टी_बाइट्स द्वारा उपयोग करता है। इसका मतलब यह है कि आवेदन अपनी वास्तविक प्रगति के आगे 15MB से अधिक नहीं प्राप्त कर सकता है।

एक साइड इफेक्ट यह है कि आपके कंप्यूटर में इस सेटिंग के साथ डेटा-राइटिंग थ्रूपुट हो सकता है, लेकिन पूरे पर, मुझे यह देखने में मदद मिलती है कि एक प्रोग्राम लंबे समय से चल रहा है, जबकि यह बहुत सारे डेटा को लिखता है। कार्यक्रम अपनी नौकरी के साथ किया जाता है, लेकिन कर्नेल बुरी तरह से काम करता है क्योंकि वास्तविक कार्य करता है। गंदे_बाइट्स को एक छोटे से मूल्य पर सेट करना भी आपके सिस्टम को गैर-जिम्मेदार बनने से रोकने में मदद कर सकता है जब आप मुफ्त मेमोरी पर कम होते हैं और एक प्रोग्राम चलाते हैं जो अचानक बहुत सारे डेटा लिखते हैं।

लेकिन, इसे बहुत छोटा न रखें! मैं एक मोटे अनुमान के रूप में 15 एमबी का उपयोग करता हूं कि कर्नेल बफर को एक दूसरे या 1/4 के सामान्य हार्ड ड्राइव में प्रवाहित कर सकता है। यह "लैगी" महसूस करने से मेरी प्रणाली को बनाए रखता है।

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