USB मेमोरी स्टिक की प्रतिलिपि वास्तव में धीमी है?


45

जब मैं USB डिवाइस में फ़ाइलों को कॉपी करता हूं, तो यह विंडोज़ (उसी USB डिवाइस, उसी पोर्ट) की तुलना में बहुत अधिक समय लेता है, यह USB 1.0 स्पीड (1MB / s) की तुलना में तेज है, लेकिन USB 2.0 स्पीड (12MB / s) की तुलना में बहुत धीमा है। 1.8GB की प्रतिलिपि बनाने में मुझे 10 मिनट से अधिक समय लगता है (यह <3 मिनट होना चाहिए।) मेरे पास दो समान सैनडिस्क क्रूज़र 8GB स्टिक्स हैं, और मुझे दोनों के साथ एक ही समस्या है। पड़ोसी बंदरगाह में मेरे पास सुपर प्रतिभा 32 जीबी यूएसबी एसएसडी है और यह अपेक्षित गति से काम करता है।

जीयूआई में मुझे जो समस्या दिख रही है वह यह है कि प्रगति बार लगभग तुरंत 90% हो जाता है, 100% थोड़ा धीमा हो जाता है और फिर 10 मिनट के लिए वहीं लटक जाता है। इस बिंदु पर प्रतिलिपि को बाधित करने से फ़ाइल के टेल एंड पर भ्रष्टाचार का परिणाम होता है। अगर मैं इसके लिए प्रतीक्षा कर रहा हूं तो यह प्रतिलिपि पूरी हो गई है।

कोई विचार? नीचे उत्पादन dmesg:

[64059.432309] usb 2-1.2: new high-speed USB device number 5 using ehci_hcd
[64059.526419] scsi8 : usb-storage 2-1.2:1.0
[64060.529071] scsi 8:0:0:0: Direct-Access     SanDisk  Cruzer           1.14 PQ: 0 ANSI: 2
[64060.530834] sd 8:0:0:0: Attached scsi generic sg4 type 0
[64060.531925] sd 8:0:0:0: [sdd] 15633408 512-byte logical blocks: (8.00 GB/7.45 GiB)
[64060.533419] sd 8:0:0:0: [sdd] Write Protect is off
[64060.533428] sd 8:0:0:0: [sdd] Mode Sense: 03 00 00 00
[64060.534319] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.534327] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.537988] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.537995] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.541290]  sdd: sdd1
[64060.544617] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.544619] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.544621] sd 8:0:0:0: [sdd] Attached SCSI removable disk

लिनक्स डिफर्स डिस्क अन्य कार्यों को तेजी से करने के बदले में लिखता है। बस एक अनुमान, दौड़ने की कोशिश करें syncऔर देखें कि क्या यह प्रक्रिया को गति नहीं देता है। <- अप्रयुक्त लेकिन संभव
२०:४३ में रोबॉटहंस

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

अन्य USB थंबड्राइव पर तेजी से होना आपके प्रश्न में नहीं है। अगर ऐसा होता, तो मैंने सुझाव दिया था कि मैं hdparm में देखूं। तो यह समझ में आता है अगर आप इसे किसी ऐसे व्यक्ति के दृष्टिकोण से देखते हैं जो आपके पूरे सेट-अप को नहीं जानता है, लेकिन विवरण के लिए आपके प्रश्न पर निर्भर करता है
RobotHumans

"मेरे पास पड़ोसी बंदरगाह में 32 जीबी का यूएसबी एसएसडी है। यह अपेक्षित गति से काम करता है।" यह वहाँ था, लेकिन अच्छी तरह से छिपा हुआ मैं मानता हूँ :) तो यह hdparm सामान आप के लिए क्या है?
एलॉफ

ठीक है, एसएसडी और फ्लैश मेमोरी एसओ एक ही चीज नहीं हैं। लेकिन साथ-साथ चलते हुए, HDParm एक उपयोगिता है जो आपको मैन्युअल रूप से ड्राइव के लिए एक्सेस / स्पिन गति सेट करने देता है
रोबॉटहूमन

जवाबों:


29

लिनक्स (और विंडोज में तेज) में मेरे यूएसबी ड्राइव की नकल क्यों हो रही है?

कारण 1. फ़ाइल कैशिंग लिखने को धीमा या तेज प्रदर्शित कर सकता है

जीयूआई में मुझे जो समस्या दिख रही है वह यह है कि प्रगति बार लगभग तुरंत 90% हो जाता है, 100% थोड़ा धीमा हो जाता है और फिर 10 मिनट के लिए वहीं लटक जाता है।

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

विंडोज में इस तरह की नकल तेजी से हो सकती है (रिपोर्ट की गई एमबी / सेकंड स्पीड सहित) क्योंकि कभी-कभी विंडोज सिंक के लिए इंतजार नहीं करेगा , और जैसे ही डेटा कैश में लिखा जाता है, तब तक काम पूरा होने की घोषणा करें।

कारण 2. बहुत सारी फाइलें लिखना, विशेष रूप से छोटे वाले, धीमी गति से

1.8GB कॉपी करने के लिए

जिस तरह से फ्लैश मेमोरी और फाइलसिस्टम काम करते हैं, बहुत बड़ी फाइलों को लिखते समय सबसे तेज गति (गति) प्राप्त होती है। बहुत सारी छोटी फ़ाइलों को लिखना, या यहाँ तक कि कई छोटी फ़ाइलों वाली मिश्रित डेटा प्रक्रिया को बहुत धीमा कर सकती है। यह हार्ड ड्राइव को भी प्रभावित करता है, लेकिन कुछ हद तक।

कारण 3. USB स्टिक और SSD की गति की तुलना करें

पड़ोसी बंदरगाह में मेरे पास सुपर प्रतिभा 32 जीबी यूएसबी एसएसडी है और यह अपेक्षित गति से काम करता है।

  • बगीचे की एक किस्म यूएसबी स्टिक में आमतौर पर फ्लैश मेमोरी चिप्स होते हैं जो कि क्रमिक रूप से (क्रमिक रूप से) लिखे जाते हैं, और इसका अपना कोई कैश नहीं होता है।

  • दूसरी ओर, SSD में एक कंट्रोलर होता है जो फ्लैश मेमोरी चिप्स के समानांतर लिखता है , USB स्टिक पर 2 या अधिक के कारक द्वारा थ्रूपुट को बढ़ाता है।

    • यदि आपके 32GB SSD में 4x 8GB चिप्स हैं, तो यह अभी भी किसी भी ऑपरेशन में USB स्टिक की तुलना में 4x तेज़ होगा।
    • SSD में RAM कैश (जैसे हार्ड डिस्क) भी होता है, इसलिए यह आने वाले डेटा को जल्दी से कैश में स्टोर कर सकता है और OS को बता सकता है कि यह हो चुका है, जबकि अभी भी वास्तव में फ्लैश मेमोरी में उस डेटा को लिखना है।
  • तो, एक बड़ी फ़ाइल के साथ, आपके द्वारा ग्रहण की गई 4x संरचना के साथ आपका 32 जीबी जीबी, 4x जितना तेज़ होगा; कई छोटी फ़ाइलों के साथ, यह 10x या अधिक तेज़ होगा क्योंकि यह समझदारी से उन्हें अपने कैश में संग्रहीत कर सकता है।


योग करने के लिए , ये वे कारण हैं जिनकी वजह से यूएसबी स्टिक में फाइल कॉपी लिनक्स में धीमी हो सकती है। क्या यह वास्तव में एक हार्डवेयर / ड्राइवर समस्या या जो कुछ भी है के कारण धीमा है ...।

लिनक्स और विंडोज के बीच लिखने की गति की उचित तुलना करना

  • सबसे पहले, कारण के बारे में एसएसडी के बारे में भूल जाओ 3. यह संतरे और सेब की तरह है।
  • कारण 1 (कैशिंग) और कारण 2 (छोटी फ़ाइलों) के प्रभावों को नकारने के लिए, आपको एक बड़ी फ़ाइल के साथ परीक्षण करने की आवश्यकता है, परीक्षण प्रणाली पर रैम की मात्रा से बड़ा।
  • लिनक्स में आप इसे बना सकते हैं dd if=/dev/urandom of=largetest bs=1M count=7500, जो आपको 7500 एमबी की टेस्ट फाइल देता है। मान लें कि आपके सिस्टम में 4GB से कम रैम है, तो यह काफी अच्छा है। कॉपी करें कि हौसले से स्वरूपित सैंडिस्क 8 जीबी स्टिक, और समय।
  • विंडोज में रिबूट करें, और largetestयूएसबी स्टिक से अपनी हार्ड डिस्क पर कॉपी करें। फिर से रिबूट करें (इसे कैश से निकालने के लिए)। फिर USB स्टिक (उसी vfat / FAT32!) को फॉर्मेट करें, और largetestहार्ड डिस्क से स्टिक पर कॉपी करें ।
  • समय की तुलना कैसे करते हैं?

2
cc: @Eloff Re Reason 1 : हां, कैश सिंकिंग निश्चित रूप से स्पष्ट समय को प्रभावित कर सकता है। लेकिन क्या कैश ही यह बताएगा कि यह 10 मिनट तक लटका क्यों रहता है ?? मुझे लगता है कि हमें ओपी से और अधिक जानकारी चाहिए। पुन कारण 2 : आप क्यों मानते हैं कि यह हस्तांतरण अनेक छोटी फ़ाइल शामिल थे? मुझे नहीं लगता कि ओपी इस 1.8 जीबी ट्रांसफर के बारे में कोई विवरण प्रदान करता है, क्या वह? री कारण 3 : हाँ, SSD एक अलग जानवर है। यह भी शायद SATA और USB के माध्यम से संलग्न किया जाएगा। मुझे लगता है कि ओपी ने केवल एसएसडी के रूप में यूएसबी स्टिक को गलत बताया और संदर्भित किया। लेकिन फिर से, जब तक हम ओपी से अधिक विवरण प्राप्त नहीं करते हैं, तब तक जानने का कोई तरीका नहीं है।
अपरिमेय जॉन

2
यह उत्तर स्पष्ट रूप से उपेक्षा करता है कि प्रश्न कैसे तैयार किया गया था। प्रश्न स्पष्ट रूप से एक बड़ी फ़ाइल के बारे में बात करता है, और तथ्य यह है कि एक उलझे हुए फ़ाइल में कॉपी परिणामों को बाधित करता है।
zrajm

4
@zrajm यह सच है। हालांकि मेरे जैसे लोगों के लिए एक ही समस्या में टकरा रहा है, यह बहुत मददगार है।
पिथिकोस

फिर इस कैशिंग व्यवहार को अक्षम कैसे करें?
अमीनू कानो सेप

7

पाया कि मैंने जो सब किया था वह ठीक नहीं था, ड्राइव को हटा दें और sudo modprobe ehci_hcdटर्मिनल में चलाएं । ड्राइव और एगियन डालें sudo modprobe ehci_hcdजब मैंने ड्राइव को अंदर रखा और वाह 20 / mbs सोचा कि मैं साझा करूंगा। आशा है कि मुझे यह हर बार नहीं करना होगा ... लेकिन यह मुश्किल नहीं है ...

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/177235 का कहना है कि उन्होंने बग को ठीक कर दिया है।


गंभीरता से ?? यह बग रिपोर्ट 2007 के दिसंबर से है और उबंटू की हिम्मत 7.10 बताती है। (FYI करें: @MarcoCeppi)
तर्कहीन जॉन

3
@irrationalJohn मैंने जवाब नहीं दिया, मैंने इसे साफ़ किया। दूसरे सिर्फ इसलिए कि बग रिपोर्ट पुरानी है, इसका मतलब यह नहीं है कि यह अभी भी मान्य नहीं है। इसके अनुसार इसे
ट्राइ किया

@MarcoCeppi हां, मुझे पता है कि आपने केवल संपादित किया है। इसीलिए मैंने " FYI: " का प्रस्ताव दिया । मुझे लगा कि अगर आप इसे संपादित करते हैं तो आप (या नहीं ) रुचि हो सकती है। मुझे लगा कि अगर आपने ध्यान नहीं दिया, तो आप बस नोटिस को अनदेखा कर देंगे। एक पुरानी बग रिपोर्ट के लिए अभी भी प्रासंगिकता है ... 4 साल पहले और मुझे लगता है कि कम से कम 8 (?) बाद में रिलीज होती है। एक प्रदर्शन बग के लिए? यकीन है, यह संभव हो सकता है, लेकिन यह पहली जगह नहीं है जो मैं देखूंगा। FWIW।
अतार्किक जॉन

7

मुझे लगता है कि संभावना बहुत कम है कि यह एक बंदरगाह मुद्दा है। यह अधिक संभावना है कि एक LINUX (या लिनक्स कॉन्फ़िगरेशन) समस्या है - चारों ओर घूमना और आपको लिनक्स / ubuntu में धीमी यूएसबी के बारे में हजारों मुद्दे रिपोर्ट मिलेंगे। मेरे लिए यह लगभग Linux के लिए एक शोस्टॉपर है - मेरे पास अब एक Ubuntu 12.04 LTS है और अभी भी यह समस्या है (इसलिए मैं Win7 सेटअप का उपयोग करता हूं - मुख्य रूप से / केवल इस वजह से)। यह मुद्दा (या इसी तरह के लक्षणों के साथ कुछ) अब कई वर्षों से है, जाहिर तौर पर कोई ठीक नहीं है। और इस समय के दौरान मैंने कई अलग-अलग ubuntu संस्करणों (डिफ़ॉल्ट कॉन्फ़िगरेशन) और 2-3 अलग-अलग यूएसबी स्टिक्स के साथ कई भौतिक पीसी की कोशिश की ...।


5

बस umountडिवाइस अगर यह पहले से ही स्वचालित है, और मैन्युअल रूप से इसे माउंट करें /mnt/foldername

मेरे मामले में,

umount /media/usb0
mount /dev/sdb1 /mnt/sam

इसके बाद यह बहुत तेजी से मुकाबला कर रहा है।


यह, के rsyncबजाय cpचाल के साथ लगता है।
इरफान

19
इससे मेरी स्थिति पर कोई फर्क नहीं पड़ा। इसके अलावा, यह वास्तव में करने के लिए के रूप में कुछ सिद्धांत के बिना एक समाधान नहीं है यही कारण है कि इस एक फर्क माना जाता है।
लंदनरॉब

@ इरफान नहीं, rsync बहुत धीमा हो जाता है ...
सर्जक

3

यह 2019 है और मैं अब भी इसी मुद्दे पर चल रहा हूं। इसलिए मुझे लगा कि मैं एक समाधान के लिए इंटरनेट खोजता हूं। मुझे निम्नलिखित पृष्ठ मिला जो एक सुझाव देता है: https://gist.github.com/2E0PGS/f63544f8abe69acc5caaa54f56efe52f

इसे कहते हैं:

कंसोल में निम्न कमांड निष्पादित करें यह देखने के लिए कि क्या यह आपके लिए समस्या को ठीक करता है। sudo suआवश्यक अनुमति के लिए आपको सबसे पहले आवश्यकता हो सकती है ।

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

यदि यह काम करता है तो आप अपनी /etc/rc.localफ़ाइल के अंत में दो लाइनों को चिपकाकर रिबूट के पार इस परिवर्तन को लगातार बना सकते हैं ।

मेरे लिए यह निम्नलिखित प्रभाव था:

USB ड्राइव में बड़ी फ़ाइलों को कॉपी करने से पहले वास्तव में तेजी से शुरू होगा (जैसे 60 एमबी / एस) और धीमी और धीमी हो जाएगी (जब तक कि यह कभी खत्म नहीं होगा, तब तक ऐसा लगता है कि यह देखा गया था।

अब यह धीमी गति से शुरू होता है, लेकिन तेज और तेज हो जाता है और पहले की तुलना में जल्दी खत्म हो जाता है। तो यह समस्या को "हल" करने के लिए या कम से कम सकारात्मक प्रभाव पड़ता है।


1

यदि आप USB 3.0 पर स्विच करते हैं, तो आप 1mb / s से 5-8mb / s की एक डोपिंग में जाएंगे। मैं एक 3.0 USB पीसी और बाहरी HD पर स्विच करता हूं और पीछे मुड़कर नहीं देखता।


1

जब आप / etc / mtab में देखते हैं, तो क्या आप देखते हैं कि डिवाइस को "फ्लश" विकल्प के साथ माउंट किया गया है?

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


फ्लश विकल्प डिफ़ॉल्ट रूप से सेट होता है, इसे रोकने का कोई तरीका?
बेन लुत्जेंस

@ बेन लुत्गेन्स - हाँ, आप अपनी प्रविष्टि / etc / fstab में रख सकते हैं जिसमें फ्लश विकल्प नहीं हैं। संबंधित डिवाइस UUID को खोजने के लिए sudo blkid का उपयोग करें और UUID = "अपने डिवाइस को यहां uuid" / mnt / <अपने माउंट पॉइंट पर यहां> uid = 1000, gid = 1000, fmask = 0022, dmask = 0022 0 0 जैसे प्रविष्टि डालें। सामान्य उपयोगकर्ता के उपयोगकर्ता और समूह से मेल खाने के लिए यूआईडी, जीआईडी ​​बदलें, जो आप उपयोग करते हैं (जैसा कि गेटवे पासवार्ड <आपके उपयोगकर्ता> द्वारा पाया गया)।
ए। डिंसीकव्स्की

जब मैं ऐसा करता हूं, तो यह सब बदल जाता है कि मुझे नकल के लिए और अधिक प्रगति पट्टी नहीं मिलती है और नकल केवल सच में किक करने के लिए लगता है / जब मैं डिवाइस को अनमाउंट करने की कोशिश करता हूं और यह मुझे बताता है "ऑपरेशन समाप्त होने तक अनप्लग न करें।" "।
जेनी ओ'रिली ने

0

मुझे WD बाहरी डिस्क पर स्थानांतरण दर के साथ कुछ समस्याएं भी थीं, इसलिए इसे विंडोज़ SO में खोलने के बाद, मैंने हमेशा LINUX का उपयोग किया, उसके बाद स्थानांतरण दर 1.5mb / s की तरह थी जैसे कि मैं बाहरी हार्ड ड्राइव चलाने वाले dmesg को अनमाउंट करता था। कह रही है कि sdb1 यह पूरी तरह से unmounted था, एक fsck चला, जिसने कुछ मरम्मत की और उसके बाद 20mb / s की ट्रांसफर दर फिर से हुई जब sda से बाहरी डिस्क तक copiyng। यदि आपके पास डेटा है तो fsck हमेशा एक जोखिम है, लेकिन यह मेरे लिए काम करता है, जिसमें कोई डेटा हानि नहीं है।


-2

मुझे भी यह समस्या थी, लेकिन मैं cp कमांड का उपयोग करता हूं और आप सेकंड में अपने यूएसबी स्टिक को अपडेट करते हैं;

cp -r -u /home/user/Muziek/ /media/user/Audiousbsti
cp -r -u /home/user/Muziek/ /media/user/4F49-4A65/

मुझे लगता है कि यह बहुत देर से जवाब है लेकिन यह अभी भी खुला है।


-3

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

उम्मीद है कि इससे मदद मिली

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