เหตุใดการคัดลอกไฟล์ใน Linux จึงช้าลงเมื่อเวลาผ่านไป


22

ฉันมีไฟล์ 12 ~ 200 MB การคัดลอกหนึ่งในนั้นไปยังไดรฟ์อื่นใช้เวลา 20 วินาที เมื่อฉันพยายามที่จะคัดลอกพวกเขาทั้งหมดในครั้งแรกมันบอกว่ามันจะใช้เวลา 5 นาทีจากนั้นก็จะชะลอตัวลงในชั่วโมงและวัน

ฉันกำลังคัดลอกไฟล์ผ่าน Thunar ใน XFCE แต่ฉันจำได้ว่ามีปัญหาที่คล้ายกันโดยใช้บรรทัดคำสั่ง เหตุใดสิ่งนี้จึงเกิดขึ้นและฉันจะทำอย่างไรเพื่อแก้ไขนอกเหนือจากการคัดลอกไฟล์ทีละไฟล์?


คุณตรวจสอบข้อผิดพลาดของไดรฟ์แล้วหรือยัง ไฟล์เหล่านี้อยู่ในโฟลเดอร์ย่อยหรือไม่?
tubaguy50035

@ tubaguy50035 ไฟล์ไม่ได้อยู่ในโฟลเดอร์ย่อย ดังที่กล่าวมาเป็นไปได้ว่าไดรฟ์ต้นทางอาจมีข้อผิดพลาด ฉันจะตรวจสอบ.
ไม่พบผู้ใช้

@CodeGnome ฉันทำ CP พื้นฐาน -v sourcedir / * destdir
ไม่พบผู้ใช้

คำตอบ:


25

นี่เป็นปัญหาที่ทราบกันดีของเคอร์เนล Linux ที่รู้จักกันมานานแล้วยังไม่มีใครแก้ไขปัญหาได้

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

refs:


6
การอ้างอิงที่จำเป็น! มันอาจช่วยตอบคำถามของเราได้ถ้าคุณสามารถให้เอกสารที่ชี้ไปที่ข้อผิดพลาดนี้ได้
Journeyman Geek


6
และที่นี่ซึ่งสามารถพบได้เป็นลิงค์ในการอ้างอิงเดิม bugzilla.kernel.org/show_bug.cgi?id=12309
เดฟ

คุณขับออกจาก Linux ด้วยเหตุผลนี้ ???
Kyrol

1
@ Kyrol นี่เป็นเหตุผลใหญ่มาก!
puk

10

คุณควรลองrsyncเพื่อตรวจสอบความเร็วการถ่ายโอนของคุณ ตัวอย่างเช่น:

rsync -PSauv sourcedir/* destdir/

หากคุณเห็นความเร็วในการโอนลดลงซึ่งต่างจากไฟล์ที่มีขนาดใหญ่คุณต้องดูอีกสองสามอย่าง

  1. หากดิสก์ของคุณเป็น I / O-bound คุณจะมีปัญหา คุณมักจะเห็นสิ่งนี้เมื่อเขียนอย่างหนักไปยังแฟลชไดรฟ์หรืออุปกรณ์ USB ภายนอก

  2. ทดสอบดิสก์ทั้งสองของคุณด้วยhdparm -Tt <device>เพื่อดูว่าหนึ่งช้ากว่าที่ควรจะเป็นหรือช้ากว่าอุปกรณ์อื่น ๆ ซึ่งอาจนำไปสู่ปัญหา I / O

  3. ตรวจสอบเอาต์พุตdmesgและสถานะ SMART ของคุณเพื่อให้แน่ใจว่าคุณไม่มีข้อผิดพลาดดิสก์ที่ชัดเจน คุณอาจพิจารณา badblocks -nว่าคุณสงสัยข้อผิดพลาดของดิสก์ในไดรฟ์ที่ไม่ใช่สมาร์ท

มีสาเหตุหลายประการที่ดิสก์สามารถฟาดหรือดำเนินการย่อยได้อย่างเหมาะสม แต่จนกว่าคุณจะสามารถวัดปัญหาได้คุณจะไม่ทราบว่าปัญหาคืออะไร :)


2

โปรดจำไว้ว่ากระบวนการคัดลอกไฟล์จะถูกแคชโดย Linux หากคุณใช้ไฟล์เดียว (แม้ว่าจะมีขนาด 200MB) และเริ่มคัดลอกไฟล์ไปยังที่อื่น Linux จะเก็บแคชด้วยความน่าจะเป็นที่ดีไฟล์ทั้งหมดในหน่วยความจำและเขียนลงในตำแหน่งใหม่ จากนั้นหากคุณเลือกที่จะคัดลอกไฟล์นั้นอีกครั้งและด้วยไฟล์อื่น ๆ ไฟล์แรกจะถูกแคชแล้วและอาจข้ามส่วน "read part" ทั้งหมดในขณะที่ไฟล์อื่นถูกอ่านครั้งแรกจากนั้นเขียนไปยังแหล่งที่มา / สถานที่ท่องเที่ยว คุณลักษณะนี้สามารถนำไปสู่ความเร็วในการถ่ายโอนที่ไม่ จำกัด และความแปลกประหลาดที่คล้ายกันดังนั้นอย่าเชื่อถือการวัดใด ๆ ที่อาจถูกทำให้เป็นโมฆะโดยกลไกการไล่ก่อนหน้านี้


-3

เบิร์นสำเนาSliTazลงบน CD / USB

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

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