ทำไม Linux ถึงเร็วกว่า Windows 10 ถึง 10 เท่าในการคัดลอกไฟล์?


20

ฉันได้ไฟล์และโฟลเดอร์ขนาด 20.3 กิกะรวมเป็น 100k + รายการ ฉันทำซ้ำไฟล์เหล่านั้นทั้งหมดในไดเรกทอรีเดียวจาก Windows 10 และมันทำให้ฉันประหลาดใจในการคัดลอก 3 ชั่วโมง เสร็จสิ้น

เมื่อวันก่อนฉันบูทใน Linux Fedora 24, recopied โฟลเดอร์เดียวกันและแบม! ฉันใช้เวลาเพียง 5 นาทีในการทำซ้ำในสถานที่เดียวกัน แต่มีไดเรกทอรีต่างกัน

ทำไม Linux จึงเร็ว และ Windows ช้าอย่างระมัดระวัง?

มีคำถามที่คล้ายกันที่นี่

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

แต่คำตอบที่ยอมรับค่อนข้างขาด


คุณไม่ได้ใช้ "Windows" หรือ "Linux" เพื่อคัดลอกไฟล์คุณใช้โปรแกรมเฉพาะที่ทำงานในระบบปฏิบัติการแต่ละระบบ โปรแกรมต่าง ๆ อย่างกว้างขวางในวิธีการที่พวกเขาใช้และการแลกเปลี่ยนที่พวกเขาทำ คุณใช้อันไหน แล้วยังไง?
kreemoweet

5
@ kreemoweet: ดังนั้นระบบปฏิบัติการ - ระบบปฏิบัติการ NTFS ของ Windows เป็นที่รู้จักกันดีในการจัดการกับไฟล์ขนาดเล็กจำนวนมากเมื่อเทียบกับระบบไฟล์อื่น ๆ ส่วนใหญ่
user1686

2
และ downvote ที่ดีจากแฟน Windows ฮะ คุณจะเห็นว่าการคัดลอกไฟล์แม้จะง่ายมีแอปพลิเคชั่นมากมายตั้งแต่การสำรองข้อมูลในธุรกิจและการศึกษาทางวิทยาศาสตร์ ตัวอย่างเช่นใน CERN มีข้อมูลจำนวนเพตาไบต์ที่ต้องจัดการการคัดลอกที่ช้าจะไม่สามารถยอมรับได้
Jones G

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

@DominicGuana ระบบไฟล์ทำส่วนของพวกเขา (ext3 / ext4 สามารถจัดสรรชิ้นของ 100Mb ในครั้งเดียว) คุณคิดว่าโปรแกรมป้องกันไวรัสภายใต้ windows สามารถมีบทบาท (ชะลอตัว) ด้วยหรือไม่ BTW สำหรับปัญหาที่คล้ายกันกับ SLAC ไหลเก็บข้อมูล (หลังทริกเกอร์ระดับที่ 1 มีข้อมูลที่มากเกินไป) เราได้เรียนรู้ที่จะเขียนเกี่ยวกับ HDD ในแบบคู่ขนาน ...
แฮสเธอร์

คำตอบ:


25

พื้นฐานของมันแบ่งออกเป็นองค์ประกอบสำคัญบางส่วนของระบบทั้งหมด: องค์ประกอบ UI (ส่วนกราฟิก) เคอร์เนลตัวเอง (สิ่งที่พูดถึงฮาร์ดแวร์) และรูปแบบที่เก็บข้อมูล (เช่นระบบไฟล์ )

การย้อนกลับไปNTFSนั้นเป็นความจริงสำหรับ Windows มาระยะหนึ่งแล้วในขณะที่ความจริงสำหรับตัวแปร Linux ที่สำคัญคือextระบบไฟล์ ระบบไฟล์ NTFS นั้นยังไม่ได้เปลี่ยนตั้งแต่ Windows XP (2001) มีคุณสมบัติมากมายที่มีอยู่ (เช่นการลดขนาด / การแบ่งพาร์ติชัน, NTFS ของทรานแซคชัน ฯลฯ ) เป็นคุณสมบัติของระบบปฏิบัติการ (Windows Vista / 7/8/10) และไม่ใช่ NTFS extระบบไฟล์มีมันเป็นครั้งสุดท้ายของรุ่นเสถียรสำคัญ ( ext4) ในปี 2008 เนื่องจากระบบไฟล์ตัวเองคือสิ่งที่มีอิทธิพลและวิธีการที่ไฟล์ที่มีการเข้าถึงถ้าคุณกำลังใช้ext4มีโอกาสที่จะคุณจะสังเกตเห็นการปรับปรุงความเร็วมากกว่า NTFS; อย่างไรก็ตามถ้าคุณใช้ext2คุณอาจสังเกตว่ามันเปรียบได้กับความเร็ว

อาจเป็นไปได้ว่าพาร์ติชันหนึ่งถูกฟอร์แมตเป็นชิ้นเล็กกว่าอีกพาร์ติชัน ค่าเริ่มต้นสำหรับระบบส่วนใหญ่คือขนาดคลัสเตอร์4096 byte 1 , 2แต่ถ้าคุณฟอร์แมตext4พาร์ติชันของคุณเป็นอย่างเช่น16k 3ดังนั้นการอ่านแต่ละครั้งบนext4ระบบจะได้รับ 4x ข้อมูลเทียบกับระบบ NTFS (ซึ่งอาจหมายถึง 4x ไฟล์ขึ้นอยู่กับสิ่งที่เก็บไว้ สถานที่ / อย่างไรและใหญ่อย่างไร) การกระจายตัวของไฟล์ยังสามารถมีบทบาทในความเร็ว NTFS จัดการการแตกextแฟรกเมนต์ของไฟล์แตกต่างจากระบบไฟล์มากและด้วยไฟล์ 100k + มีโอกาสที่ดีที่จะมีการแตกแฟรกเมนต์

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

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

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

คุณสามารถกำหนดค่าบางสิ่งให้เท่ากัน (เช่นการแคชดิสก์หรือขนาดของคลัสเตอร์) แต่การพูดตามความเป็นจริงนั้นขึ้นอยู่กับว่าส่วนต่าง ๆ ทั้งหมดรวมเข้าด้วยกันเพื่อให้ระบบทำงานได้อย่างไรและเฉพาะเจาะจงมากขึ้น ระบบปฏิบัติการ Windows มาไกลตั้งแต่ Windows XP แต่ระบบย่อยของดิสก์เป็นพื้นที่ที่ไม่ได้เห็น TLC มากในระบบปฏิบัติการในทุกรุ่นเป็นเวลาหลายปี (เทียบกับระบบนิเวศ Linuxที่ดูเหมือนว่าจะเห็น FS ใหม่ หรือปรับปรุงค่อนข้างบ่อย)

หวังว่าจะเพิ่มความชัดเจน


คำตอบที่น่ากลัวในความคิดของฉันและลงคะแนน คุณกำลังแนะนำความแตกต่างที่ไม่มี ไม่มีใครถามว่าไดรฟ์ที่แบ่งพาร์ติชันทำงานอย่างไร แน่นอนว่าศูนย์คำถามเกี่ยวกับกฎ "คนอื่นทุกคนเท่าเทียมกัน" ฉันสามารถเลือก fs สำหรับ 8 nvme raid0 ได้ทุกวิธีที่ฉันต้องการด้วยความเร็วในการอ่านดั้งเดิมมากกว่า 16 กิกะไบต์ต่อวินาทีและยังมีการคัดลอกไฟล์ Windows สูงสุดที่ 1.4-1.5 กิกะไบต์ตลอดเวลา ไม่มีส่วนเกี่ยวข้องกับการแคช fs พาร์ติชัน แต่มีข้อ จำกัด ของ windows OS เพิ่มเติม
Matthias Wolf

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

ฉันใช้ ntfs ตัวเลือกที่ดีกว่าจะมีอะไรเป็น fs บน windows server?
Matthias Wolf

ฉันติดต่อ MSFT และมีการสนทนามากมายและพยายามหลายสิ่งหลายอย่างในช่วงหลายปีที่ผ่านมาและไม่เคยได้เกิน 1.5GB / วินาทีแม้จะมี 100Gb nics ในแต่ละเครื่องและมีปริมาณการใช้งานอื่น ๆ ต่อเครื่องมือทำโปรไฟล์ของ Mellanox ปริมาณข้อมูล 94-95Gb / วินาที ไม่มีการชะลอตัวระหว่างเครื่องลินุกซ์ แต่ทันทีที่มีเครื่อง Windows OS เกี่ยวข้องฉันเห็นคอขวดเหล่านั้น
Matthias Wolf

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