ทำไมแฟลชไดรฟ์ของฉันถึงช้าลงเมื่อทำการคัดลอก


27

หลังจากการคัดลอกไม่กี่นาทีก็จะช้าลงเรื่อย ๆ ทำไม?

เช่นเริ่มต้นด้วย 20 MByte / วินาทีและเมื่อมันเสร็จแล้วมันจะอยู่ที่ 10 MByte / s

ไฟล์ต่างๆ, ใหญ่, เล็ก, ฯลฯ

UPDATE: คำถามเกี่ยวกับระบบปฏิบัติการต่าง ๆ ดังนั้นจึงเป็น "คำถามทั่วไป"


คุณคัดลอกจำนวนเท่าใดเมื่อเทียบกับหน่วยความจำว่างในคอมพิวเตอร์ของคุณ
KCotreau

พีซี -> ไดรฟ์ USB-FLASH: ฟรีหลายร้อย GBytes -> ไม่กี่ GBytes ฟรี
LanceBaynes

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

ดังนั้นคุณแนะนำให้ฉันใช้คำสั่ง "ซิงค์" บ่อยขึ้นหรือไม่
LanceBaynes

ฉันไม่เข้าใจความหมายของคำสั่งซิงค์ คุณไม่ให้บริบทกับคำถาม ฉันไม่แน่ใจด้วยซ้ำว่าระบบปฏิบัติการอะไร
KCotreau

คำตอบ:


25

พฤติกรรมนี้ไม่เฉพาะเจาะจงกับแฟลชไดรฟ์ของคุณคุณสามารถดูได้จากฮาร์ดไดรฟ์เช่นกัน มันเกี่ยวข้องกับกลไกการแคชระบบปฏิบัติการและดิสก์ส่วนใหญ่ใช้เพื่อเร่งความเร็วในการเขียนขนาดเล็ก

20mb / s ที่คุณเห็นคือข้อมูลที่ถูกเขียนไปยังดิสก์แคช (โดยปกติจะรวดเร็ว แต่มีหน่วยความจำขนาดเล็ก) เมื่อแคชนี้เต็มแล้วจะต้องถูกฟลัชไปที่ดิสก์ - และตอนนี้คุณกำลังถูกคอขวดโดยดิสก์ที่ช้ากว่า

ตัวอย่างที่ 1: เอฟเฟกต์นั้นเด่นชัดจริงๆเมื่อคุณมีคอนโทรลเลอร์ที่มีแคชขนาดใหญ่ (เช่นคอนโทรลเลอร์ RAID5 ที่ดี) ซึ่งสามารถแคชข้อมูลได้ ~ 500mb อย่างรวดเร็วก่อนที่จะต้องล้างข้อมูลลงดิสก์

ตัวอย่างที่ 2: คุณสามารถดูแคชขณะเล่นหากคุณดึงแฟลชไดรฟ์ออกในเวลาเดียวกันการคัดลอกไฟล์ "เสร็จสิ้น" ในเวลานี้ไฟล์ของคุณจะถูกแบ่งระหว่างดิสก์และแคชดังนั้นจึงมีการคัดลอก "เสร็จสิ้น" เท่าที่ระบบปฏิบัติการกังวล แต่ตัวควบคุมดิสก์ยังคงต้องเขียนสิ่งที่เหลืออยู่ในแคชลงในดิสก์ หากคุณใส่แฟลชไดรฟ์กลับเข้าไปใหม่และตรวจสอบไฟล์คุณจะเห็นว่ามันไม่ได้มีแค่นั้น

คำเตือน: ตัวอย่างเหล่านี้จะไม่ทำงานหากคุณไม่ได้เปิดใช้งานแคชการเขียนในระบบปฏิบัติการ / บนดิสก์

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


ยังจำไว้ว่ามันเป็นแฟลชไดรฟ์ มันเป็นฮาร์ดแวร์ที่ไม่เคยปรับให้เหมาะกับความเร็ว
surfasb

ฉันไม่คิดว่าจะอธิบายว่าทำไมประสิทธิภาพจะลดลงในระหว่างการคัดลอกไฟล์แบบยาว ประสิทธิภาพจะลดลงตลอดอายุการใช้งานของไดรฟ์ใช่หรือไม่
ta.speot.is

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

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

@ ta.speot.is ฉันคิดว่าดิสก์แคชที่คุณกล่าวถึงนี้จัดการโดยระบบปฏิบัติการบนฮาร์ดดิสก์และแตกต่างจากฮาร์ดแวร์แคชที่ฮาร์ดไดรฟ์มีภายในใช่ไหม
sepehr

1

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

การชะลอตัวนี้เกิดจากการ remanence ข้อมูลบนชิปแฟลชที่ใช้ในการจัดเก็บข้อมูลที่จำเป็นที่บล็อกบางส่วนจะถูกเขียนไปมากกว่าหนึ่งครั้ง

ภายในชิปแฟลชมีบล็อกข้อมูลที่สามารถเขียนได้ เมื่อเขียนมีเพียงสองสิ่งที่คอมพิวเตอร์ทำได้: มันสามารถลบทั้งบล็อกหรือเปลี่ยนบางส่วน (หรือทั้งหมด) ของบิตในบล็อกจาก 0 เป็น 1

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

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

  1. นำบล็อกชุดแรกไปเขียนและเขียนมันทั้งหมด
  2. อ่านบล็อกทั้งหมดที่เราเพิ่งเขียนและทำรายการบล็อกที่ไม่ตรงกัน
  3. เขียนบล็อกชุดถัดไปพร้อมกับบล็อกที่ไม่ได้เขียนอย่างถูกต้องในครั้งที่แล้ว
  4. ทำซ้ำ 2-3 จนกระทั่งบล็อกทั้งหมดถูกเขียนอย่างถูกต้อง

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


ฉันกำลังเขียนไฟล์ 12 Gig 7zip ไปยังแฟลชไดรฟ์ USB 3.0 รูปแบบใหม่เป็น NTFS มันจะอยู่ที่ประมาณ 100 MB / s ในนาทีแรกจากนั้นก็ลดลงไปที่ 25ish MB / s ประมาณหนึ่งนาทีจากนั้นก็ลดลงเหลือ 11 หรือประมาณ 10 นาที มันไม่ใช่ความชันแบบค่อยเป็นค่อยไปมันเป็นที่ราบสูง 3 แห่ง
Eric

ฉันกำลังคัดลอกไฟล์เก็บถาวรออกจากแล็ปท็อป i7 รุ่นเก่าที่มี RAM 16 Gigs การคัดลอกไฟล์เก็บถาวร 7zip เดียวกันนี้ออกจาก thumbdrive เดียวกันบนแล็ปท็อป Xeon รุ่นใหม่ที่มี RAM 32 Gigs ใช้เวลา 2 นาทีและไม่มีความเร็วในการส่ง
Eric

0

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


ความแตกต่างของความเร็วในการเขียนของอุปกรณ์จัดเก็บข้อมูลที่แตกต่างกันอาจรุนแรงมากเช่นเปรียบเทียบความเร็วในการเขียนของการ์ด SD เก่ากับความเร็วในการเขียนของ SATA III SSD
karel

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