อัลกอริทึมการคัดลอกไฟล์ (Ubuntu) Linux ดีกว่า Windows 7 หรือไม่


13

Windows Copy เป็นเรื่องยุ่งเหยิงนับตั้งแต่ Windows Vista แม้ Microsoft จะอ้างว่าพวกเขาได้ปรับปรุงประสิทธิภาพจากมุมมองของผู้ใช้ แต่ก็ไม่สามารถมองเห็นได้ แม้จะมีไฟล์เดียวหน้าต่างการคัดลอกก็ยังใช้เวลานานเกินไปสำหรับ 'การคำนวณ' และจากนั้นก็ทำสำเนาให้เสร็จ (แม้หลังจากเสร็จ 100% บางครั้งกล่องโต้ตอบยังคงทำงานอยู่)

ในขณะเดียวกันฉันก็สำรองไฟล์บางไฟล์ใน Ubuntu Linux ฉันรู้สึกว่ามันเร็วจริงๆ อาจเป็นความรู้สึกที่เกิดจากการอัปเดต UI ที่เร็วขึ้น

ผมอ่านโพสต์ข้อมูลจากไม่กี่ปีที่เจฟฟ์แอดกลับบน Windows คัดลอกไฟล์ แต่คำถามเฉพาะของฉันคืออะไร

  • ประสิทธิภาพของไฟล์ Linux (Ubuntu) ดีกว่า Windows-7 หรือไม่
  • ทั้งอัลกอริทึม, Windows และ Linux ใช้ประโยชน์จากหลายเธรดและกลไกการวางท่อเพื่อปรับปรุงความเร็วหรือไม่? ถ้าใช่อันไหนดีกว่ากัน?

3
ใน Windows ใช้หรือแม้กระทั่งxcopy robocopyดีกว่ามาก ตัวอย่างเช่นในกรณีหลังคุณสามารถทำสองรอบได้ก่อนอื่นเพื่อสร้างไดเรกทอรีทั้งหมด แต่ไม่คัดลอกไฟล์ใด ๆ และอันดับที่สองเพื่อคัดลอกไฟล์จริงจึงไม่ทำให้เกิดการแตกแฟรกเมนต์บนเป้าหมาย
Kerrek SB

1
หรือ RichCopy ( blogs.technet.com/b/kenและดาวน์โหลด )
sehe

ยังขึ้นอยู่ในระบบแฟ้ม - ระบบของคุณคงจะใช้สิ่งที่ต้องการext3/4ซึ่งจะแข่งขันกับ NTFS ที่นี่ คุณอาจลองreiserfsและxfs- ทั้งสองอย่างนี้เหมาะสำหรับการดำเนินการอย่างรวดเร็วด้วยไฟล์ขนาดเล็ก
new123456

@ KerrekSB โปรดตอบความคิดเห็นของคุณเพื่อที่ฉันจะได้โหวตได้ (ฉันเพิ่ง +1 ความคิดเห็น แต่คุณรู้ว่าฉันหมายถึงอะไร) นั่นคือคำตอบ
CarlF

ควรสังเกต (แม้ว่า 8 ปีต่อมา!) ที่ Robocopy / CREATE แม้ว่าจะมีประโยชน์มากในการทำซ้ำโครงสร้างไดเรกทอรีที่สมบูรณ์แบบด้วยไฟล์ว่างเปล่าโดยตัวมันเองไม่ได้ป้องกันการกระจายตัวของไฟล์บนเป้าหมาย โครงสร้างถูกสร้างขึ้นใน MFT แต่ก็สามารถบันทึกเนื้อหาของไฟล์ได้ทุกที่ โดยปกติแม้ในครั้งเดียวหาก Robocopy รัน mono-threaded และคัดลอกไฟล์ครั้งละหนึ่งไฟล์ก็ไม่ควรมีการแตกแฟรกเมนต์อยู่ดี (และการเรียกใช้มัลติเธรดเป็นความคิดที่ไม่ดี เนื่องจากไดรฟ์เชิงกลต้อง "บด" มากขึ้น)
GabrielB

คำตอบ:


6

มาตรฐานcopybuiltin ใน Windows จะไม่ดีมาก แต่ Windows มาพร้อมกับสองคำสั่งขั้นสูงที่อยู่ห่างไกลที่มีประสิทธิภาพมากขึ้น: และxcopy robocopyโดยเฉพาะอย่างยิ่งเมื่อคุณต้องการควบคุมคุณสมบัติระบบไฟล์ขั้นสูงเช่นACLsหรือสตรีมข้อมูลสำรองrobocopyเป็นเครื่องมือที่คุณเลือก

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

พรึบrobocopyมีประสิทธิภาพมากและตระหนักถึงคุณสมบัติ NTFS อย่างเต็มที่


NTFS นั้นมีประสิทธิภาพดีกว่า ext3 / 4 หรือไม่?
sarat

วิธี robocopy สองรอบช่วยให้เราลดการแตกแฟรกเมนต์เนื่องจากเนื้อหาจริงจะถูกคัดลอกในภายหลัง การจัดสรรดิสก์ถูกควบคุมโดยตัวจัดการไฟล์ทั้งหมดหรือไม่
sarat

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

2
@Sarath: เกี่ยวกับการแตกแฟรกเมนต์: รายการไดเร็กทอรีจะเพิ่มขึ้นเมื่อมีการเพิ่มไฟล์และส่วนย่อยใหม่ในไดเรกทอรี หากคุณเพียงแค่สร้างไดเรกทอรีอย่างไร้เดียงสาและเริ่มวางไฟล์ในที่สุดระเบียนไดเรกทอรีดั้งเดิมจะเล็กเกินไปและต้องขยายออก แต่ตอนนี้ไม่มีที่ว่างเพราะคุณมีข้อมูลไฟล์อยู่แล้ว ด้วย/CREATEตัวเลือกไฟล์และส่วนย่อยที่ว่างเปล่าจะถูกสร้างขึ้นซึ่งไม่มีที่ว่างจึงทำให้รายการไดเรกทอรีถูกเขียนออกมาอย่างต่อเนื่อง
Kerrek SB

1
@Sarath: สำหรับการเปรียบเทียบ NTFS กับ Ext ฉันไม่สามารถพูดได้เพราะ NTFS ไม่เปิดและคำถามเรื่องประสิทธิภาพค่อนข้างคลุมเครือ NTFS นั้นเป็นเทคโนโลยีชั้นดีที่มีคุณสมบัติมากมาย ไม่มีทางเลือกจริง ๆ เพราะคุณจะใช้ NTFS ใน Windows และ Ext (หรือ BTRFS) ใน Linux และนั่นเป็นเหตุผล
Kerrek SB

4

ความเร็วบางส่วนที่คุณเห็นจาก Ubuntu Linux อาจเป็นไฟล์แคช เท่าที่ฉันรู้การคัดลอกไฟล์ใน Linux ไม่ได้พยายามลดการใช้แคชไฟล์

ด้วย Linux เมื่อคุณคัดลอกไฟล์ที่มีขนาดเล็กกว่าประมาณ 50% ของ RAM ของคุณไฟล์ทั้งหมดจะถูกคัดลอกไปยังแคชไฟล์แล้วเขียนลงดิสก์ตามเวลาที่อนุญาต สิ่งนี้ดูเหมือนจะเร็วมาก แต่ก็บังคับให้ไฟล์อื่น ๆ ที่มีประโยชน์มากกว่าแคช อาจเป็นไฟล์แคชของเว็บอีเมลไฟล์กำหนดค่าไฟล์ตัวอักษร ฯลฯ

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


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

ฉันคิดว่านี่เป็นคำตอบที่ตอบคำถามเกือบสมบูรณ์
Nandakumar Edamana

2

ใน Windows ใช้ Teracopy - มันจะแก้ปัญหาความโง่เขลาโดยรวมที่ Explorer มี

ใน Ubuntu ฉันพบว่าการคัดลอกไฟล์นั้นรวดเร็วมาก

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

อัปเดต: การใช้งานไฟล์ Windows อาจเป็นการรวมเข้ากับบริการและรีจิสตรีช้า Nautilus (ใน Gnome) เป็นเพียงกระบวนการง่าย ๆ ที่ฉันเดาหรืออย่างน้อยก็ไม่มีโหลด / การขัดจังหวะที่ Explorer มี


แก้ความโง่เขลาด้วยการเพิ่ม GUI อื่นที่ต้องเปิดอยู่ :) ในอูบุนตูประสบการณ์ของฉันคือคุณสามารถยกเลิกไดอะล็อกคัดลอก / ย้ายและมันจะไปที่ถาดระบบแสดงการแจ้งเตือนเมื่อเสร็จสิ้น ไม่แน่ใจเกี่ยวกับวิธีที่เดสก์ท็อป Natty กับ Unity ทำเช่นนั้นได้อย่างไร
sehe

Teracopy ทำการโหลดด้วย Explorer คุณไม่ต้องเปิดไว้ ดังนั้น Teracopy จึงถูกโหลดเข้าสู่หน่วยความจำโดยไม่ต้องใช้ความพยายามใด ๆ และทำงานได้อย่างสงบเสงี่ยม อูบุนตูไม่ต้องการอะไรอย่างนั้นเพราะมันมีสติปัญญาที่รวมอยู่ใน Nautilus นั่นคือ "ผสาน" และ "ข้ามตัวเลือกทั้งหมด"
BZ1

+1: ขอบคุณที่นำ TeraCopy มาถึงความสนใจของฉันแล้ว!
sehe

ฉันใช้เครื่องมือโอเพนซอร์สและฟรีที่เรียกว่า fastcopy [ ipmsg.org/tools/fastcopy.html.en]
sarat

-1

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


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