जब मैं बहुत सारी फ़ाइलों को USB ड्राइव पर कॉपी करता हूं, तो मेरा डेस्कटॉप लॉक क्यों होता है?


11

मेरा डेस्कटॉप आमतौर पर बहुत ही संवेदनशील है, यहां तक ​​कि भारी भार के तहत भी। लेकिन जब मैं USB ड्राइव में फ़ाइलों को कॉपी करता हूं, तो यह हमेशा कुछ समय के बाद लॉक हो जाता है। "लॉक अप" से मेरा मतलब है:

  • एक खिड़की से दूसरी खिड़की पर ध्यान केंद्रित करने में 10-20 का समय लग सकता है
  • डेस्कटॉप स्विच करने में 10-20 का समय लग सकता है
  • वीडियो अब अपडेट नहीं होते हैं (YouTube में, ऑडियो चलता रहता है, केवल वीडियो फ़्रीज़ होता है)

ऐसा होने पर सिस्टम लोड असाधारण रूप से अधिक नहीं होता है। कभी-कभी, मुझे xosview पर बहुत सारे सफेद दिखाई देते हैं जो दर्शाता है कि कर्नेल कहीं व्यस्त है।

पहली नज़र में, ऐसा लगता है जैसे USB ड्राइव में फ़ाइलों को कॉपी करना किसी भी तरह से कॉम्पिज़ के साथ हस्तक्षेप करेगा लेकिन मैं कल्पना नहीं कर सकता कि कनेक्शन क्या हो सकता है।

यहाँ का उत्पादन है htop:

हैंग के कुछ ही समय बाद आउटपुट

यहाँ iostat -c -z -t -x -d 12 मिनट के हैंग के दौरान आउटपुट दिया गया है :

19.07.2012 20:38:22
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1,27    0,00    0,38   37,52    0,00   60,84

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdg               0,00     2,00    0,00  216,00     0,00 109248,00  1011,56   247,75  677,69    0,00  677,69   4,63 100,00

जैसा कि आप देख सकते हैं, केवल बाहरी हार्डडिस्क सक्रिय है। यहाँ पूर्ण लॉग है: http://pastebin.com/YNWTAkh4

फांसी 20:38:01 पर शुरू हुई और 20:40:19 पर समाप्त हुई।

सॉफ्टवेयर जानकारी:

  • OpenSUSE 12.1
  • केडीई 4.7.x
  • Filesystems: मेरी आंतरिक हार्डडिस्क पर reiserfs और btrfs, USB ड्राइव पर btrfs

1
क्या आपने USB ड्राइव syncको बढ़ते हुए देखने की कोशिश की है कि इसका क्या प्रभाव (यदि कोई हो) है?
Alexios

2
यूएसबी का एक नुकसान यह तथ्य है कि यह आईओ के लिए सीपीयू पर बहुत निर्भर करता है। आपके सिस्टम में किस प्रकार का CPU है? grep name /proc/cpuinfoकृपया अपने प्रश्न के आउटपुट को संलग्न करें ।
जिप्पी

1
क्या आप डॉल्फ़िन का उपयोग करके फ़ाइलों को खींचते और छोड़ते हैं? यदि हां, तो cpसंभावित डॉल्फिन बग को बाहर करने के लिए कमांड लाइन से प्रयास करें ।
जरी लामेनन

@JariLaamanen: मैं rsyncकमांड लाइन से उपयोग कर रहा हूं ।
आरोन दिगुल्ला

1
@ जिप्पी: वास्तव में नहीं है क्योंकि जब ऐसा होता है तो यूआई लॉक हो जाता है, इसलिए मैं स्क्रीनशॉट नहीं बना सकता। मैं एक लॉग बनाने की कोशिश करूँगाiostat -c -z -d 1
एरोन डिगुल्ला

जवाबों:


4

मेरा पहला अनुमान btrfsइस फाइल सिस्टम की I / O प्रक्रियाओं के बाद से कभी-कभी लगता है। लेकिन यह नहीं समझाता कि एक्स क्यों लॉक करता है।

व्यवधानों को देखते हुए, मैं इसे देखता हूं:

# cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
  0:        179          0          0          0          0          0          0          0  IR-IO-APIC-edge      timer
  1:          6          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
  8:          1          0          0          0          0          0          0          0  IR-IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   acpi
 12:         10          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
 16:    3306384          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   ehci_hcd:usb1, nvidia, mei, eth1

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


2

मैंने 12S.1 के linux-3.1 कर्नेल के साथ समान समस्याओं को देखा था और पाया कि पारदर्शी विशाल पृष्ठों को निष्क्रिय करने में मदद मिली:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

अंतर्निहित समस्या यह है कि यदि कोई एप्लिकेशन 4MB या अधिक आवंटित करता है, तो कर्नेल इसे एक विशाल पृष्ठ देने का प्रयास करेगा, जिसके लिए इसे संपूर्ण सन्निहित 4MB RAM की आवश्यकता है। अब, यदि आस-पास कई गंदे पृष्ठ हैं, तो अभी भी एक धीमी USB डिवाइस को लिखने की आवश्यकता है, यह मेमोरी आवंटन के साथ जारी रखने से पहले उस IO के समाप्त होने की प्रतीक्षा करता है।


1

जैसा कि उल्लेख किया गया है, यह संभवतः कर्नेल विशालपंजी सेटअप के साथ करना है। मैं इस समस्या से कई लोगों को जानता हूं। आप वेब में इसके बारे में कई दस्तावेज पा सकते हैं, जैसे

मैंने निम्नलिखित करके अपने सेटअप पर समस्या को पूरी तरह से ठीक कर दिया है। नोटिस YMMV, नीचे दिए गए सभी फ़िक्सेस आवश्यक नहीं हो सकते हैं, और शायद वे पर्याप्त नहीं होंगे। मैं ईमानदार होने के लिए कुछ भूल गया हूँ। किसी भी तरह यह मेरा सेटअप है और यह काम करता है।

  • Linux-ck कर्नेल का उपयोग करें
  • echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
  • echo never > /sys/kernel/mm/transparent_hugepage/defrag

-2

केबल बदलें। यूएसबी पोर्ट / केबल्स से ऑक्सीडेंट निकालें।


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