Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

ทำความเข้าใจ Fragmentation และ Defragmentation: คืออะไร ทำไมจึงสำคัญ

คุณกำลังมองหาความเข้าใจเกี่ยวกับ Fragmentation และ Defragmentation อยู่หรือไม่? คุณมาถูกที่แล้ว เพราะวันนี้เราจะเข้าใจว่าคำเหล่านี้หมายถึงอะไรจริงๆ และเมื่อไหร่ที่ต้องการ fragmentation และ defragmentation

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

เร็วกว่าสื่อโบราณมาก แต่มีข้อบกพร่องของตัวเอง ปัญหาหนึ่งของฮาร์ดดิสก์แม่เหล็กคือ fragmentation

Fragmentation และ Defragmentation คืออะไร?

คุณอาจเคยได้ยินคำว่า fragmentation และ defragmentation เคยสงสัยไหมว่ามันหมายถึงอะไร? หรือระบบดำเนินการเหล่านี้อย่างไร? มาเรียนรู้ทั้งหมดเกี่ยวกับคำเหล่านี้

Fragmentation คืออะไร?

สำคัญที่เราต้องเข้าใจว่าฮาร์ดดิสก์ทำงานอย่างไรก่อนจะสำรวจโลกของ fragmentation ฮาร์ดดิสก์ประกอบด้วยหลายส่วน แต่มี 2 ส่วนหลักที่ต้องรู้ ส่วนแรกคือ "platter" (แผ่นดิสก์) เป็นแผ่นโลหะเล็กๆ ที่มีชั้นวัสดุแม่เหล็กขนาดไมโครสโคปิก แผ่นเหล่านี้หมุนที่ความเร็วสูงมักคงที่ที่ 5400 RPM หรือ 7200 RPM (Rounds Per Minute)

ยิ่ง RPM สูง ยิ่งอ่าน/เขียนข้อมูลเร็ว ส่วนที่สองคือ Disk read/write head หรือ "spinner head" วางอยู่บนดิสก์ หัวอ่าน/เขียนนี้รับและเปลี่ยนสัญญาณแม่เหล็กจาก platter ข้อมูลจัดเก็บในหน่วยเล็กๆ เรียกว่า sectors

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

นอกโลกคอมพิวเตอร์ fragmentation คืออะไร? Fragments คือส่วนเล็กๆ ที่นำมารวมกันจะได้เอนทิตี้ทั้งหมด แนวคิดเดียวกันใช้ได้ที่นี่ ระบบจัดเก็บไฟล์หลายไฟล์ แต่ละไฟล์ถูกเปิด เพิ่มเติม บันทึก และจัดเก็บใหม่ เมื่อขนาดไฟล์ใหญ่กว่าเดิมเมื่อระบบดึงไฟล์มาแก้ไข จะต้องมี fragmentation ไฟล์ถูกแบ่งเป็นส่วนๆ และจัดเก็บในตำแหน่งต่างๆ ของพื้นที่จัดเก็บ ส่วนเหล่านี้เรียกว่า 'fragments' ใช้เครื่องมืออย่าง File Allocation Table (FAT) ติดตามตำแหน่ง fragments ต่างๆ ในพื้นที่จัดเก็บ

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

การเปรียบเทียบที่เหมาะสม: เกมไพ่ สมมติคุณต้องการสำรับไพ่ครบ ถ้าไพ่กระจายอยู่ทั่วไป คุณต้องเก็บจากที่ต่างๆ เพื่อได้สำรับครบ ไพ่กระจาย = fragments ของไฟล์ การเก็บไพ่ = ฮาร์ดดิสก์รวบรวม fragments เมื่อดึงไฟล์

เหตุผลเบื้องหลัง Fragmentation

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

มีระบบปฏิบัติการที่จัดเก็บไฟล์โดยไม่ใช้ fragmentation แต่ Windows ใช้ fragmentation ในการจัดเก็บไฟล์

ปัญหาที่อาจเกิดจาก Fragmentation

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

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

이รอาจ fragmentation ถูกเรียกว่า 'a necessary evil' (ความจำเป็นที่ร้ายแรง) มันเร็วตอนจัดเก็บ แต่ช้าลงระบบในที่สุด

วิธีตรวจสอบว่า Drive แฟรกเมนต์หรือไม่

Fragmentation มากเกินไปส่งผลต่อประสิทธิภาพระบบ ง่ายต่อการสังเกตว่าดรายฟ์แฟรกเมนต์หรือไม่ หากสังเกตประสิทธิภาพลดลง เวลาเปิด/บันทึกไฟล์เพิ่มขึ้น แอปอื่นๆ ก็ช้าลง ด้วยเวลา ระบบบูทจะช้าเหมือนนצח

นอกจากปัญหาที่ชัดเจน ยังมีปัญหาอื่นรุนแรงกว่า ตัวอย่าง: ประสิทธิภาพของแอป Antivirus ลดลง แอป Antivirus สร้างขึ้นเพื่อสแกนไฟล์ทั้งหมดบนฮาร์ดดิสก์ หากไฟล์ส่วนใหญ่จัดเก็บเป็น fragments แอปจะใช้เวลานานในการสแกน

การสำรองข้อมูล (Backup) ก็ได้รับผลกระทบ ใช้เวลานานกว่าคาด ตอนปัญหาสูงสุด ระบบอาจค้างหรือแครชโดยไม่มีคำเตือน บางครั้งบูทไม่ได้

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

วิธีแก้ไขปัญหา

แม้ fragmentation จะหลีกเลี่ยงไม่ได้ แต่ต้องจัดการเพื่อให้ระบบทำงานได้ ต้องดำเนินการอีกกระบวนการหนึ่งชื่อ defragmentation Defragmentation คืออะไร? ทำอย่างไร?

Defragmentation คืออะไร?

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

Defragmentation รวบรวมส่วนที่แยกของไฟล์ทั้งหมด และจัดเก็บในตำแหน่งจัดเก็บที่ติดกัน (contiguous) กล่าวง่ายๆ คือ กระบวนการย้อนกลับของ fragmentation ไม่สามารถทำด้วยมือได้ ต้องใช้เครื่องมือที่ออกแบบมาเพื่อวัตถุประสงค์นี้ กระบวนการนี้ใช้เวลานาน แต่จำเป็นต่อการปรับปรุงประสิทธิภาพระบบ

กระบวนการ defragmentation ดำเนินการดังนี้: อัลกอริทึมจัดเก็บในระบบปฏิบัติการควรทำงานอัตโนมัติ ระหว่าง defragmentation ระบบรวมข้อมูลที่กระจายอยู่เป็น sectors ที่แน่นหนาโดยย้ายบล็อกข้อมูลรอบๆ เพื่อรวบรวมส่วนที่กระจายให้กลายเป็นสตรีมข้อมูลที่ติดกันและมี凝聚力

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

ระบบปฏิบัติการสมัยใหม่ส่วนใหญ่มาพร้อมกับ defragmentation tool ในตัว แต่ Windows เวอร์ชันก่อนหน้าไม่มี หรือมีแต่อัลกอริทึมไม่เพียงพอที่จะแก้ปัญหาเบื้องต้น

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

ผลคือ Windows OS มาพร้อมกับ defragmentation tool เริ่มต้น แต่เนื่องจากขาดเทคโนโลยีที่มีประสิทธิภาพ นักพัฒนาภายนอกหลายรายเปิดตัวเครื่องมือของตัวเองเพื่อแก้ปัญหา fragmentation

มีเครื่องมือภายนอกบางตัวที่ทำงานดีกว่า built-in tool ของ Windows เครื่องมือฟรีที่ดีที่สุดสำหรับ defrag:

  • Defraggler
  • Smart Defrag
  • Auslogics Disk Defrag
  • Puran Defrag
  • Disk SpeedUp

หนึ่งในเครื่องมือที่ดีที่สุดคือ 'Defraggler' สามารถตั้งตารางเวลาได้ และเครื่องมือจะ defragment อัตโนมัติตามตาราง เลือกไฟล์/โฟลเดอร์เฉพาะที่ต้องการรวม หรือยกเว้นข้อมูลบางส่วน มี portable version ทำงานที่มีประโยชน์ เช่น ย้าย fragments ที่ใช้น้อยไปปลายดิสก์เพื่อเพิ่มประสิทธิภาพการเข้าถึง และว่าง Recycle Bin ก่อน defrag

เครื่องมือส่วนใหญ่มีอินเทอร์เฟซคล้ายกัน วิธีใช้ค่อนข้างเข้าใจง่าย ผู้ใช้เลือกดรายฟ์ที่ต้องการ defrag และกดปุ่มเริ่มกระบวนการ คาดว่าจะใช้เวลาอย่างน้อย 1 ชั่วโมงขึ้นไป แนะนำให้ทำทุกปี หรืออย่างน้อย 2-3 ปีครั้ง ขึ้นกับการใช้งาน เนื่องจากใช้ง่ายและฟรี ทำไมไม่ใช้เพื่อรักษาประสิทธิภาพระบบ?

Solid State Drive (SSD) และ Fragmentation

Solid-state drives (SSD) เป็นเทคโนโลยีจัดเก็บล่าสุดที่แพร่หลายในอุปกรณ์ผู้บริโภค เช่น สมาร์ทโฟน แท็บเล็ต โน้ตบุ๊ค คอมพิวเตอร์ SSD ทำจากหน่วยความจำแบบฟลัช (flash-based memory) เทคโนโลยีเดียวกับ USB flash drive

หากคุณใช้ระบบที่มี SSD ควรทำ defragmentation หรือไม่? SSD แตกต่างจากฮาร์ดดิสก์ที่ทุกส่วนเป็น static (นิיח) หากไม่มีชิ้นส่วนเคลื่อนที่ เวลาที่สูญเสียในการรวบรวม fragments ของไฟล์จะน้อยมาก ดังนั้นการเข้าถึงไฟล์จึงเร็วกว่าในกรณีนี้

อย่างไรก็ตาม เนื่องจากระบบไฟล์ยังคงเหมือนเดิม fragmentation ยังคงเกิดขึ้นในระบบที่มี SSD แต่โชคดีที่ประสิทธิภาพเกือบไม่ได้รับผลกระทบ จึง ไม่จำเป็นต้องทำ defrag

การทำ defragmentation บน SSD อาจเป็นอันตรายถึงชีวิตของ SSD ตัวเอง SSD อนุญาตให้เขียนข้อมูล (writes) ได้จำนวนจำกัด การ defrag ซ้ำๆ จะเกี่ยวข้องกับการย้ายไฟล์จากตำแหน่งปัจจุบันและเขียนไปตำแหน่งใหม่ ทำให้ SSD ชราก่อนอายุการใช้งาน

ดังนั้น การทำ defrag บน SSD จะมีผลกระทบที่เป็นลบ จริงๆ แล้วหลายระบบปิดตัวเลือก defrag หากตรวจพบ SSD ระบบอื่นๆ จะออกคำเตือนเพื่อให้ทราบผลลัพธ์

สรุป

เราเชื่อว่าตอนนี้คุณเข้าใจแนวคิด fragmentation และ defragmentation ดีขึ้นแล้ว

จุดสำคัญที่ควรจำ:

  1. เนื่องจาก defragmentation ของดรายฟ์เป็นกระบวนการที่ "มีค่าใช้จ่ายสูง" ด้านการใช้งานฮาร์ดดิสก์ จึงควรจำกัดให้ทำเฉพาะเมื่อจำเป็นจริงๆ
  2. ไม่ใช่แค่จำกัด defragmentation แต่เมื่อทำงานกับ SSD ไม่จำเป็นต้อง defragment 2 เหตุผล:
    • แรก SSDs สร้างขึ้นมาด้วยความเร็วอ่าน/เขียนสูงมากโดยค่าเริ่มต้น ดังนั้น fragmentation น้อยๆ ไม่ส่งผลต่อความเร็วมากนัก
    • สอง SSDs มีรอบการอ่าน/เขียนจำกัด จึงควรหลีกเลี่ยง defragmentation บน SSD เพื่อไม่ให้ใช้รอบชีวิตเหล่านั้น
  3. Defragmentation เป็นกระบวนการง่ายๆ ในการจัดระเบียบบิตของไฟล์ที่กลายเป็นทอดทิ้ง (orphaned) เนื่องจากเพิ่มและลบไฟล์บนฮาร์ดดิสก์