मैं (X) ubuntu में बेहतर यूएसबी ट्रांसफर गति कैसे प्राप्त करूं?


14

जब मैं अपने USB 2.0 ड्राइव को Xubuntu से जोड़ता हूं और बड़ी फ़ाइलों को स्थानांतरित करने का प्रयास करता हूं, तो स्थानांतरण गति पहले अच्छी होती है, लेकिन कुछ सेकंड के बाद 1-2 Mib / s पर छोड़ दें। मैंने जो पढ़ा है, उसमें शुरुआत में तेज़ ट्रांसफ़र सिर्फ तब तक होता है जब तक कैश पूरा भर जाता है, तब असली USB ट्रांसफ़र स्पीड का उपयोग किया जाता है।

विंडोज में, गति लगभग 25Mib / s, एक ही छड़ी, एक ही पोर्ट से जुड़ी होती है।

छड़ी को जोड़ने पर यह dmesg से आउटपुट है:

[ 5237.580084] usb 1-4: new high speed USB device using ehci_hcd and address 6
[ 5237.714318] scsi4 : usb-storage 1-4:1.0
[ 5238.713909] scsi 4:0:0:0: Direct-Access     SanDisk  Cruzer           8.02 PQ: 0 ANSI: 0 CCS
[ 5238.715264] sd 4:0:0:0: Attached scsi generic sg2 type 0
[ 5238.727225] sd 4:0:0:0: [sdb] Attached SCSI removable disk
[ 5242.308981] sd 4:0:0:0: [sdb] 31301631 512-byte logical blocks: (16.0 GB/14.9 GiB)
[ 5242.309589] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 5242.311228] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 5242.311238]  sdb: sdb1

छड़ी को स्वचालित किया जाता है, यहां "माउंट" का उत्पादन होता है:

/dev/sdb1 on /media/B82C-6B07 type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush)

मुझे vfat का उपयोग करना है क्योंकि मैं अपने Playstation3 सिस्टम में फ़ाइलों को स्थानांतरित करना चाहता हूं। नीचे दिए गए परीक्षण से पता चलता है कि यह मुख्य कारण नहीं है।

ऐसा लगता है कि यह (X) ubuntu में एक आम मुद्दा है। मुझे अभी तक एक स्पष्ट समाधान नहीं मिला है। ऐसा लगता है कि छड़ी को फ्लश के बजाय async के रूप में माउंट करने की आवश्यकता है लेकिन मुझे यकीन नहीं है कि इसे कैसे प्राप्त किया जाए। मुझे कोई आपत्ति नहीं है अगर मुझे स्टिक को अनमाउंट करने से पहले हर बार इसे डिस्कनेक्ट करना होगा जब तक कि ट्रांसफर गति बेहतर न हो।

कोई विचार?

2 नवंबर: यह बग रिपोर्ट संबंधित लगती है: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/182931 । मुझे इस बात की चिंता है कि समस्या 2 साल से अधिक पुरानी है और अभी भी हल नहीं हुई है।

10 नवंबर: मैंने पालिम्पस्टेस्ट (ग्नोम-डिस्क-यूटिलिटी प्रोजेक्ट से) के साथ एक रीड-टेस्ट शुरू किया। यह मुझे 23 एमबीटी / एस की न्यूनतम अंतरण दर देता है। साथ ही अब इसे कुरासर में भी आज़माया गया है, पढ़ने की गति लगातार> 20 MBit / s है। तो समस्या वास्तव में सिर्फ छड़ी के लिए लिख रहा है!

यहाँ एक ही कार्यक्रम में एक रीड-राइट टेस्ट की एक छवि है:

यहां छवि विवरण दर्ज करें

मुझे परीक्षण से पहले पूरी तरह से फाइलसिस्टम को हटाना पड़ा जो दर्शाता है कि vfat मुख्य कारण नहीं है जैसा कि ऊपर बताया गया है।

एक और संकेत: अगर मैं 100 एमबी की फ़ाइल स्थानांतरित करता हूं, तो 100% पर एक बार यह वास्तव में स्थानांतरण को समाप्त करने के लिए एक असामान्य लंबा समय लेता है। यह फिर से मुझे दिखता है कि फ़ाइल वास्तव में कैश में है लेकिन यूएसबी डिवाइस पर लिखना बहुत धीमा है।

12 नवंबर: "अच्छी खबर"। समस्याओं को मेमोरी स्टिक ही लगता है। एक बाहरी हार्डड्राइव (माई बुक एलीट 1 टीबी) की कोशिश करने से मुझे लगभग 20 MiB / s की निरंतर लिखने की गति मिलती है। मैंने पहली बार अपनी मेमोरी स्टिक को सुधारने की कोशिश की ताकि मैं वास्तव में दोनों की तुलना कर सकूं (फाइल सिटिज़ अलग थे)। सुधार करने के बाद, दोनों ड्राइव बिल्कुल उसी तरह से माउंट किए जाते हैं:

/dev/sdb1 on /media/My Book type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sdc1 on /media/cruzer_ type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)

क्रूजर स्टिक है (कुछ सेकंड के बाद भी गति गिरती है), माई बुक बाहरी हार्डड्राइव है जिसमें 20 मिब / एस की निरंतर लिखने की गति है।

यह कहना मुश्किल है कि समस्या वास्तव में क्या है। जैसा कि मैंने कहा, विंडोज में मुझे सैनक्रूजर के साथ भी उतनी ही तेजी से लिखने की गति मिलती है।

इनाम के अंत में संपादित करें: दुर्भाग्य से, छड़ी के साथ समस्या अभी भी हल नहीं हुई है। हालांकि, 7 दिनों के बाद मैं निश्चित रूप से इनाम देना चाहता हूं। Aking1012 की टिप्पणी वास्तव में सहायक थी क्योंकि इसने इस मामले पर एक नई रोशनी डाली। हालाँकि, मुझे लगता है कि मुझे बाउंटी को परेशान करने के लिए देना होगा क्योंकि उन्होंने समस्या को हल करने का सबसे अधिक प्रयास दिखाया। सबको शुक्रीया।


ocaoimh.ie/ubuntu-linux-slow-external-usb-drive उम्मीद है कि यह मदद करता है =)

1
वहाँ फ्लैश ड्राइव और सच बाहरी HDs के लिए लिखने की गति के बीच एक अंतर है ... बस एक सवाल है
RobotHumans

उत्कृष्ट विचार! टिप के लिए बहुत बहुत धन्यवाद, कृपया मेरे अपडेट में परिणाम देखें (12 नवंबर)। समस्या अभी तक हल नहीं हुई है, लेकिन यह वास्तव में इसे नीचे बताती है!
18 नवबंर

FWIW, flushआपके माउंट आउटपुट में विकल्प मदद करने की संभावना नहीं है। मुझे लगता है कि इससे भी बदतर है sync
बेलाडज़

जवाबों:


11

यह आलेख धीमा USB 2.0 मास स्टॉर्ज़ ट्रांसफर रेट बताता है कि यह डिवाइस की समस्या हो सकती है जो सिंक विकल्प के साथ डिफ़ॉल्ट रूप से माउंट हो रही है:

क्या आपके पास अपने डेस्कटॉप पर "डिवाइस" आइकन है?
यदि ऐसा है, तो इसे खोलें। यदि नहीं, तो मीडिया खोलने का प्रयास करें: / konqueror में।

डिवाइस को तब सेक्ट करें -> गुण -> बढ़ते (टैग) और सिंक्रोनस बॉक्स को अनचेक करें। (यह याद हो जाता है, इसलिए आपको केवल एक बार प्रति डिवाइस करने की आवश्यकता है)।


बग-रिपोर्ट से कुछ और विचार आते हैं बाहरी एचडीडी पर लिखें जिससे लेखन बहुत धीमा हो

  • आप 'सुडो माउंट -o रिमाउंट, एसिंक्स / देव / sda1' (या जो कुछ भी आपके माउंटेड पार्टिशन है / हैं) द्वारा रनटाइम में एस्किंट में बदलते हैं
  • आप sda के लिए एक fstab प्रविष्टि बनाते हैं जो इसे async mounts (इसके लिए यह आवश्यक है कि डिवाइस हमेशा बूटटाइम में प्लग किया गया हो)
  • आप pmount स्रोत में 'सिंक' को 'सिंक' में बदलते हैं और पैकेज का पुनर्निर्माण करते हैं

यदि यह आपके सिस्टम पर लागू होता है, तो लेख के बारे में भी चर्चा करें।


एक और मैजिक सॉल्यूशन USB 2.0 स्लो राइट लेकिन फास्ट रीड, सॉल्यूशन से आया है? और पुन: माउंट शामिल है:

जब मैं निम्नलिखित लाइन के साथ / dev / sdc1 पर USB ड्राइव माउंट करता हूं

/dev/sdc1       /mnt/sdc1     auto    sync,noauto,user,exec     0       0

in / etc / fstab, और स्थानीय हार्ड डिस्क से ड्राइव पर 5.2 MB फ़ाइल की प्रतिलिपि बनाने का प्रयास करें, फिर एक मिनट के बाद, 244 KB स्थानांतरित कर दिया गया है। बाहरी ड्राइव से स्थानीय ड्राइव पर 29 एमबी की फाइल कॉपी करने में लगभग 10 सेकंड लगते हैं।

फिर अगर मैं इसे अनमाउंट करता हूं, तो लाइन को / etc / fstab में बदल दें

/dev/sdc1       /mnt/sdc1     auto    noauto,user,exec     0       0

फिर 29 एमबी फ़ाइल को बाहरी डिस्क पर कॉपी करने पर एक दूसरे का ध्यान न देने वाला अंश लगता है। बाहरी डिस्क से स्थानीय डिस्क पर प्रतिलिपि बनाने के साथ ही।


इस लेख और "usbtree" का संदर्भ देखें। यह बताता है कि 1.1 या 2.0 के रूप में USB कार्य कर रहा है या नहीं, इसकी जांच कैसे करें:

लिनक्स और यूएसबी 2.0


ऐसा लगता है कि यह केडीई के लिए विशिष्ट है। मैं XFCE4 (Xubuntu) का उपयोग कर रहा हूं। मैंने वैसे भी सुझाव की कोशिश की, जैसा कि कोनिकर स्थापित है। उद्घाटन मीडिया: / मुझे अपवाद देता है "प्रोटोकॉल समर्थित नहीं"। किसी भी अन्य तरीके से मैं यह पता लगा सकता हूं कि क्या यह "async" या "सिंक" माउंट है?
9

मैंने एक और उपयोगी लेख जोड़ा।
१०:१० बजे

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

एक और कोशिश की गयी।
१२:२२ पर १२

धन्यवाद हैरी, वास्तव में आपके निरंतर प्रयास की सराहना करते हैं। दुर्भाग्य से, अभी भी एक मौका नहीं है। मैंने इसे / etc / fstab में उल्लिखित सेटिंग्स और इसे माउंट करने की कोशिश की। यदि मैं सिंक के साथ विकल्प का प्रयास करता हूं, तो यह और भी बुरा है। मुझे केवल लगभग 100-200 किब / एस मिलते हैं। सिंक विकल्प के बिना, यह अभी भी समान है: शुरुआत में तेज़, 1-2 मिब / एस तक गिरना।
तीर्थयात्री

2

ड्राइव तक पहुंच आमतौर पर async मोड में बफर की जाती है। शुरुआती तेज फटने से मेमोरी कैश होने की संभावना है। धीमी गति वास्तविक लिखने की गति है।

यदि आपके पास एक यूएसबी स्टिक है जो हस्तांतरण के दौरान चमकती है तो कुछ परीक्षणों का प्रयास करें। मैंने पाया कि कॉपी पूरी होने के बाद राइट्स काफी समय तक जारी रह सकते हैं।

सिंक मोड के बजाय async मोड में माउंट करना कॉपी को तेज़ी से आगे बढ़ने की अनुमति देता है, लेकिन आपको वही सुरक्षा नहीं देता है जो कॉपी किए गए डेटा को वास्तव में स्थानांतरित किया जाता है।

में विकल्पों की जाँच करें man mount। कुछ प्रारूप मेटाडेटा (निर्देशिका, फ़ाइल आबंटन तालिका, आदि) अद्यतनों को स्थगित करने की अनुमति देते हैं। यह उन डेटा की मात्रा में कटौती करेगा जिनकी प्रतिलिपि बनाने की आवश्यकता है। इससे डेटा हानि का जोखिम थोड़ा बढ़ जाता है।


जानकारी के लिए धन्यवाद, यह वास्तव में मेरी मान्यताओं की पुष्टि करता है। स्थानांतरण के दौरान ड्राइव लगातार चमकती है, हालांकि यह हस्तांतरण के बाद लंबे समय तक फ्लैश नहीं करता है। मुझे केवल इस पर संदेह है क्योंकि फ़ाइल प्रबंधक अभी भी छड़ी को एक्सेस कर रहा है। सुरक्षा एक बड़ी समस्या नहीं होगी, मुझे वास्तव में बस गति में दिलचस्पी है। मेटाडेटा के बारे में दिलचस्प, मैं यह जाँच करूँगा। हालाँकि, क्या आपको लगता है कि बड़ी फ़ाइलों (500 MiB) को स्थानांतरित करने पर यह कुछ भी बदल जाएगा?
9

इसके अलावा, जो अभी भी मुझे पहेली करता है, वह बाहरी हार्डडिस्क के साथ बहुत तेज क्यों है, लेकिन छड़ी के साथ नहीं? माउंट विकल्प बिल्कुल समान हैं, मैंने ठीक उसी परीक्षण फ़ाइल को स्थानांतरित कर दिया।
तीर्थयात्री

1
हार्ड ड्राइव पर एक 4 KiB लिखता है, आमतौर पर हार्ड डिस्क नियंत्रक द्वारा कार्यान्वित 4 KiB का लेखन होता है। एक 4 kBB फ़्लैश मेमोरी के लिए आम तौर पर कुछ अस्थायी भंडारण के लिए पढ़ा जाने वाला 128 KiB है, एक अस्थायी Ki4 ओवरराइट कहा जाता है, अस्थायी टेंपरेचर स्टोरेज, 128 KiB मिटा ऑपरेशन, और एक 128 KiB राइट, जो उपरोक्त सभी द्वारा लागू किया गया है फ्लैश मेमोरी कंट्रोलर। कम या ज्यादा :)
tzot 22

1

तो मैं इसी मुद्दे की एक Google खोज के माध्यम से इस पेज पर आया था ("ubuntu 15 speed up usb transfer") क्योंकि मेरे स्थानान्तरण 75kb / s पर चल रहे थे।

यह शायद मेरे सेटअप के लिए केवल समाधान था, लेकिन मेरी 16GB USB 3 ड्राइव को GPT fat32 में स्वरूपित किया गया था, मैंने सभी विभाजन हटा दिए, MBR के लिए आरम्भ किया, एक एकल NTFS विभाजन बनाया, इसे अपने Ubuntu पीसी में वापस प्लग किया और यह एक 10GB फ़ाइल को स्थानांतरित कर रहा है 50 एमबी / एस से अधिक। मेरे लिए, समस्या हल हो गई।


पुष्टि की गई कि मिंट 18.3 (उबंटू 16.04) के लिए वसा 32 से एनटीएफएस पर स्विच करना एक बड़े पैमाने पर सुधार था।
रेवेन

0

हमें यह सुनिश्चित करने की आवश्यकता है कि सिस्टम प्रोग्राम में लिखने की कोशिश करता है / ब्लॉक चेंज मिटाता है। आधुनिक फ्लैश मेमोरी के साथ वे आमतौर पर आकार में 1M-4M होते हैं। ऐसा करने के लिए आप यह सुनिश्चित करना चाहते हैं कि आपका FS ब्लॉक को मिटाने के लिए संरेखित है, और यह इंटरफ़ेस पूरे ब्लॉक हस्तांतरण को एक बार में (सस्ते रिक्स के लिए) अनुमति देता है। अन्यथा हम लेखन प्रवर्धन प्राप्त करते हैं, क्योंकि सिस्टम उन खंडों में लिखने की कोशिश करता है जो छोटे होते हैं, ब्लॉक को पढ़ने (मॉड / लिखने / लिखने) + ब्लॉक मिसलिग्न्मेंट से।

अपनी वर्तमान सेटिंग की जाँच करने के लिए:

cat /sys/block/sd**X**/device/max_sectors

आप उन उपकरणों के लिए हॉल नियमों को ट्यून कर सकते हैं। Https://unix.stackexchange.com/questions/67719/change-value-of-usb-max-sectors-for-an-entire-family-of-devices देखें ।

इस मामले में मैंने सभी उपकरणों के लिए max_sectors को बदल दिया था, जो कि 240K (USB भंडारण) के डिफ़ॉल्ट का उपयोग 32K सेक्टरों या 2K क्षेत्रों में किया गया था:

(उपयोग == जांच करने के लिए, और = असाइन करने के लिए):

मेरे सिस्टम पर (Mageia 4, 3.14.24 कोर i7) मुझे किंग्स्टन DT101 G2 16GB पर बहुत धीमी गति से लिखने की गति (2MB / सेकंड) के कारण ऐसा करना पड़ा:

vi /usr/lib/udev/rules.d/81-udisks_maxsect.rules और जोड़:

SUBSYSTEMS == "scsi", ATTR {max_sectors} == "240", ATTR {max_sectors} = "32678"

और dd लिखने की गति 3x गुना बढ़ गई :-) mc cp शायद 10-20x ऊपर (जब मैंने पहला विभाजन @ 8192'th सेक्टर शुरू किया और 64k संरेखित समूहों के साथ पुन: स्वरूपित किया गया):

fdisk -u /dev/sdh (अगर डॉस को बंद कर दें तो),

mkfs.vfat /dev/sdh1 -n KINGSTON16G -s 128 **-R 4592**और fsck.vfat -v /dev/sdh1संरेखण की जांच करने के लिए उपयोग करें (चेक [डेटा स्टार्ट सेक्टर] 128 (क्लस्टर आकार) के कई होना चाहिए)। यदि आवश्यक हो तो आरक्षित क्षेत्रों (-R) की संख्या समायोजित करें।

डिफ़ॉल्ट max_sector (240) सस्ते नए ड्राइव में से कुछ पर उच्च लेखन प्रवर्धन का कारण बनते हैं। लेकिन इस तरह की उच्च सेटिंग के साथ बहुत सावधान रहें, समान प्रभाव 2048 क्षेत्रों (शायद 1 एम मिटा ब्लॉक) पर प्राप्त होता है:

SUBSYSTEMS == "scsi", ATTR {max_sectors} == "240", ATTR {max_sectors} = "2048"

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

PS: ext3 / 4 का उपयोग करने पर:

जर्नलिंग अक्षम करें और mkfs.ext3 के लिए स्ट्राइड / स्ट्राइप_ एक्सपोज़र सेट करें:

mkfs.ext3 -O ^ has_journal -E stride = [रीड पेज fs ब्लॉक्स] -ई स्ट्राइप-चौड़ाई = [erase block fs ब्लॉक्स]


0

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


0

जांचें, वास्तव में जांचें , कि आपका डिवाइस यूएसबी पोर्ट में प्लग किया गया है जो पूर्ण गति का समर्थन करता है।

हालांकि यह मूर्खतापूर्ण लग सकता है, कभी-कभी चीजें मिश्रित हो जाती हैं। कुछ मदरबोर्ड में हाई- और लो-स्पीड पोर्ट होते हैं। यह सत्यापित करने के लिए कि आपका डिवाइस 480Mb / s (USB 2.0) या अधिक पर चल रहा है , usbview (इसे सुपरसुअर अधिकारों के साथ निष्पादित करने के लिए नोट) जैसे टूल का उपयोग करें sudo usbview

उदाहरण के लिए, जब आप आमतौर पर अपने डिवाइस को कुछ एक्सटेंशन कॉर्ड, अपने डिस्प्ले पर हब इत्यादि के माध्यम से प्लग करते हैं, तो ऐसा हो सकता है - आपके डिस्कसाइड कंप्यूटर पर री-प्लगिन केबल के बाद या तो - ताकि आप गलती से कम गति में हब में प्लग हो जाएं (USB 1.) पोर्ट। फिर, हब में प्लग किए गए कोई भी उपकरण कम गति से काम करेंगे, जबकि अन्य, कहीं और प्लग किए गए हैं, उच्च गति पर काम करते हैं। बहुत भ्रामक हो सकता है - और एक साधारण हार्डवेयर बात है ... एक बार मेरे पास आया, और किसी भी यूएसबी कर्नेल मॉड्यूल, माउंट विकल्प या तो संबंधित नहीं है।

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