ประสิทธิภาพการทำงานช้าลงเมื่อคัดลอกไฟล์ไปยังและจากอุปกรณ์ USB


11

เมื่อฉันคัดลอกไฟล์ไปยังและจากอุปกรณ์ USB (กล้อง, HDD, การ์ดหน่วยความจำ) ระบบของฉันช้ามาก ตัวอย่างเช่นถ้าฉันต้องการปิดหน้าต่างฉันเลื่อนเมาส์ แต่ใช้เวลาประมาณ 2 วินาทีหรือมากกว่าก่อนที่เคอร์เซอร์ของเมาส์จะขยับ เมื่อฉันได้เคอร์เซอร์ไปเหนือ x แล้วคลิกมันจะไม่มีอะไรเกิดขึ้นเป็นเวลา 10+ วินาที ฉันได้ลองทำสิ่งนี้โดยที่ปิดการใช้งานเอฟเฟกต์เดสก์ท็อปทั้งหมด แต่ปัญหายังคงอยู่

ซอฟต์แวร์: Linux Mint 9 KDE Hardware:

  • เมนบอร์ด Asus SLI
  • NVidia 6600 GPU
  • 2 GB ราม
  • Swap 2 GB
  • AMD Athlox X2 @ 3800+

สำหรับฉันฮาร์ดแวร์นี้ไม่ควรมีปัญหาใด ๆ ในการใช้งานซอฟต์แวร์นี้และจะไม่มีจนกว่าฉันจะคัดลอกไฟล์โดยใช้ USB ฉันจะเริ่มมองหาสิ่งนี้ได้จากที่ไหน? ฉันคิดว่าไดรเวอร์กราฟิกอาจเป็นส่วนหนึ่งของปัญหา แต่ไม่รู้แน่ชัด


2
ตรวจสอบว่าพอร์ต USB นั้นสามารถใช้งาน USB 2.0 ได้หรือไม่ พอร์ต USB บางพอร์ตโดยเฉพาะที่ด้านหน้าของเดสก์ท็อปเคยเป็น USB 1.0 เท่านั้น ตรวจสอบด้วยว่าการตั้งค่า BIOS ของคุณเหมาะสมที่สุดสำหรับประสิทธิภาพของ USB อาจมีการตั้งค่าความเร็ว USB บางอย่างและ / หรือการตั้งค่า USB ดั้งเดิมที่อาจส่งผลต่อประสิทธิภาพการทำงานของคุณ
ทิมเคนเนดี้

อุปกรณ์จัดรูปแบบเป็น NTFS หรือไม่ หากเป็นเช่นนั้นฉันจะลองจัดรูปแบบเป็น FAT32 (หรือ EXT4 หากคุณวางแผนที่จะใช้บน Linux เท่านั้น)
RobinJ

3
ดูเหมือนจะเป็นปัญหากับหน้ามากในลินุกซ์' จัดการหน่วยความจำ มันไม่ค่อยเกิดขึ้น แต่ดูเหมือนว่าคุณจะสังเกตเห็นมัน
artistoex

@artistoex - บทความนั้นสรุปถึงพฤติกรรมที่ฉันประสบอยู่อย่างสมบูรณ์ น่าเสียดายที่ไม่มีการแก้ไขที่เป็นรูปธรรม ใครรู้ว่าสิ่งนี้ได้รับการแก้ไขในรุ่นที่ใหม่กว่า? ถึงเวลาสำหรับการอัพเกรดอยู่แล้ว
จอห์น

ดังที่บทความกล่าวไว้ให้คอมไพล์เคอร์เนลของคุณอีกครั้งโดยปิดใช้งานฟีเจอร์เพจขนาดใหญ่ที่โปร่งใส
artistoex

คำตอบ:


7

ดูเหมือนจะเป็นปัญหากับหน้าอย่างมากในการจัดการหน่วยความจำ Linuxes มันไม่ค่อยเกิดขึ้น แต่ดูเหมือนว่าคุณจะสังเกตเห็นมัน

สาเหตุ

นี่คือบัญชีที่เรียบง่ายอย่างไม่มีการลดของฉันในสิ่งที่ตามบทความเกิดขึ้น

หากโชคร้ายกระบวนการติดขัดในขณะที่มันออกการเข้าถึงหน่วยความจำ เนื่องจากเมื่อเปิดใช้งานเพจขนาดใหญ่แบบโปร่งใสการเข้าถึงหน่วยความจำอาจทำให้เกิดการบีบอัดแบบซิงโครนัส (การจัดระเบียบหน่วยความจำหลัก) การซิงโครนัสหมายถึงการเข้าถึงหน่วยความจำไม่เสร็จสิ้นก่อนการบีบอัด สิ่งนี้เองไม่ใช่สิ่งเลวร้าย แต่ถ้าการเขียนกลับ (ของเช่นข้อมูลที่ถูกบัฟเฟอร์ไปยัง USB) เกิดขึ้นในเวลาเดียวกันการบดอัดในทางกลับกันมีแนวโน้มที่จะหยุดชะงักและรอให้การเขียนกลับไปเสร็จสิ้น

ดังนั้นกระบวนการใด ๆ อาจสิ้นสุดการรอให้อุปกรณ์ที่ช้าในการเขียนข้อมูลบัฟเฟอร์เสร็จ

รักษา

การอัพเกรดหน่วยความจำหลักตามที่ OP ทำได้อาจช่วยชะลอปัญหาได้ แต่สำหรับผู้ที่ไม่พิจารณาตัวเลือกนั้นมีวิธีแก้ไขสองวิธีที่ชัดเจน ทั้งสองเกี่ยวข้องกับการคอมไพล์เคอร์เนลอีกครั้ง:

  • ปิดการใช้งานคุณสมบัติหน้าใหญ่โปร่งใส
  • ใช้ ปะของ Melตามที่กล่าวไว้ในบทความ

2

นี่คล้ายกับคำถามของฉันที่นี่ (คำตอบที่ชี้ไปที่คำถามนี้):

/programming/10105203/how-can-i-limit-the-cache-used-by-copying-so-there-is-still-memory-available-for

แต่ทฤษฎีแตกต่างอย่างสิ้นเชิงและวิธีการแก้ปัญหาที่ฉันใช้นั้นไม่เกี่ยวข้องกับของคุณ แต่ทำงานได้อย่างสมบูรณ์

ฉันกำลังใช้ rsync ดังนั้นสิ่งที่ฉันต้องทำก็คือใช้ตัวเลือก --drop-cache (ซึ่งทำให้สำเนาช้าลงเล็กน้อยเป็นผลข้างเคียง)


0

เคล็ดลับเดียวที่ฉันพบว่าใช้งานได้จริง: Gnome, nautilus คัดลอกไฟล์ไปยัง USB หยุดที่ 100% หรือใกล้เคียง

หากคุณต้องการลองใช้เทคนิคผู้ใช้ระดับสูงคุณสามารถลดขนาดของบัฟเฟอร์ที่ Linux ใช้โดยการตั้งค่า / proc / sys / vm / dirty_bytes เป็นขนาด 15728640 (15 MB) ซึ่งหมายความว่าแอปพลิเคชันไม่สามารถรับได้เกินกว่า 15MB ก่อนความคืบหน้าจริง

ผลข้างเคียงคือคอมพิวเตอร์ของคุณอาจมีการรับส่งข้อมูลที่ต่ำกว่าด้วยการตั้งค่านี้ แต่โดยรวมแล้วฉันคิดว่ามันมีประโยชน์ที่จะเห็นว่าโปรแกรมกำลังทำงานเป็นเวลานานในขณะที่มันเขียนข้อมูลจำนวนมากและความสับสนของการมี โปรแกรมดูเหมือนว่าจะทำกับงาน แต่ระบบล้าหลังไม่ดีเท่าที่เคอร์เนลทำงานจริง การตั้งค่า dirty_bytes ให้มีค่าน้อยพอสมควรสามารถช่วยป้องกันระบบของคุณไม่ตอบสนองเมื่อคุณมีหน่วยความจำว่างเหลือน้อยและเรียกใช้โปรแกรมที่เขียนข้อมูลจำนวนมากในทันที

แต่อย่าตั้งมันเล็กเกินไป! ฉันใช้ 15MB เป็นค่าคร่าวๆว่าเคอร์เนลสามารถล้างบัฟเฟอร์ไปยังฮาร์ดไดรฟ์ปกติใน 1/4 ของวินาทีหรือน้อยกว่า มันทำให้ระบบของฉันไม่รู้สึก "ล้าหลัง"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.