ฉันรู้ว่าไม่มีจุด (อันที่จริงมันเป็นความคิดที่ไม่ดี) ในการเรียกใช้ Defrag บน SSD สิ่งที่เกี่ยวกับเครื่องเสมือนที่ทำงานบน SSD ฉันควรจัดเรียงข้อมูลฮาร์ดไดรฟ์เนื่องจากใช้งานฮาร์ดไดรฟ์ในลักษณะเดียวกันหรือไม่
ฉันรู้ว่าไม่มีจุด (อันที่จริงมันเป็นความคิดที่ไม่ดี) ในการเรียกใช้ Defrag บน SSD สิ่งที่เกี่ยวกับเครื่องเสมือนที่ทำงานบน SSD ฉันควรจัดเรียงข้อมูลฮาร์ดไดรฟ์เนื่องจากใช้งานฮาร์ดไดรฟ์ในลักษณะเดียวกันหรือไม่
คำตอบ:
ฉันทำการ Defrag VHD ของฉัน แต่ด้วยเหตุผลของพื้นที่ไม่ใช่เวลา:
ฉันใช้ตัวเลือกที่จัดสรรแบบไดนามิกสำหรับ VHD ดังนั้นจึงเริ่มเล็กและขยายได้ตามต้องการ แต่เนื่องจาก VHD (ไม่จำเป็นต้องใช้ไฟล์) จะกลายเป็นส่วนย่อยมันจึงขยายเพื่อรวมบล็อกที่จัดสรรไว้ทั้งหมด การจัดเรียงข้อมูล VHD เป็นขั้นตอนแรกในการกระชับอีกครั้ง
ไม่จำเป็นต้องทำการ Defrag SSD ฮาร์ดไดรฟ์ปกติจะต้องหมุนเพื่อหาไฟล์ (ส่วนต่าง ๆ ) SSD เปรียบได้กับ RAM ไฟล์ทั้งหมดสามารถเข้าถึงได้ด้วยความล่าช้าเดียวกัน
รัฐ Wikipediaว่า "ประสิทธิภาพการอ่านไม่เปลี่ยนแปลงตามที่จัดเก็บข้อมูลบน SSD"
นี่เป็นความเห็นของฉันเท่านั้นฉันไม่มีผลการทดสอบสำรอง นี่คือการประมาณคร่าวๆว่าจะเกิดอะไรขึ้น:
ระบบปฏิบัติการจริง:
นี่จะเป็นเชนคำสั่งเทียบเท่าใน VM:
อย่างที่คุณเห็นในทั้งสองกรณีการแตกแฟรกเมนต์จะกลายเป็นปัญหาในขั้นตอนของการดำเนินการซึ่งฮาร์ดไดรฟ์ทางกายภาพพยายามอ่านข้อมูลเท่านั้นและที่เกิดขึ้นในระบบปฏิบัติการจริงนอกบริบทของ VM ก่อนหน้านั้นทุกอย่างน่าจะเกิดขึ้นในความทรงจำ
โดยสรุปเนื่องจากเรารู้ว่า SSD ไม่ได้รับผลกระทบจากการแตกแฟรกเมนต์ในระบบปฏิบัติการจริงและปัญหาของการแตกแฟรกเมนต์ใน VM อาจเกิดขึ้นได้ในขั้นตอนสุดท้ายของการดำเนินการทางกายภาพเท่านั้นฉันจึงคาดเดาว่าการจัดเรียงข้อมูล ไฟล์ดิสก์เสมือนในระบบปฏิบัติการหลักของคุณจะไม่ปรับปรุงประสิทธิภาพใน SSD ในขณะที่เป็นอันตราย / ไร้ประโยชน์เช่นเดียวกับการจัดระเบียบระบบปฏิบัติการจริงของคุณ
แก้ไข: และถ้าถูกต้องก็เป็นเหตุผลที่ดีที่จะใส่ VM ลงใน SSD! บน HDD การแตกแฟรกเมนต์ในทุกขั้นตอน (เกสต์ OS, ไฟล์ดิสก์เสมือนจริง, OS จริง) จะแยกเป็นเส้นตรงและทำให้เกิดการแตกแฟรกเมนต์ในขั้นตอนฟิสิคัลดิสก์
ไม่ว่าเครื่องเสมือนของคุณกำลังเข้าถึงข้อมูลที่เก็บไว้ใน HDD แม่เหล็กดั้งเดิมหรืออิเล็กทรอนิกส์ SSD ไฟล์ Windows NTFS & การกระจายตัวของพื้นที่ว่างจะทำให้ความเร็วในการเข้าถึงแอปพลิเคชันที่ร้องขอข้อมูลช้าลง ไฟล์ NTFS และการกระจายตัวของพื้นที่ว่างเกิดขึ้นบ่อยกว่าที่คุณคาดเดา มันมีโอกาสที่จะเกิดขึ้นทันทีที่คุณติดตั้งระบบปฏิบัติการ มันสามารถเกิดขึ้นได้เมื่อคุณติดตั้งแอพพลิเคชั่นหรืออัปเดตระบบเข้าถึงอินเทอร์เน็ตดาวน์โหลดและบันทึกภาพถ่ายสร้างอีเมลเอกสารสำนักงาน ฯลฯ ... มันเป็นเหตุการณ์ปกติและพฤติกรรมของระบบคอมพิวเตอร์ แต่มีผลกระทบในทางลบมากกว่า แอปพลิเคชันและประสิทธิภาพของระบบทั้งหมด เมื่อการแตกแฟรกเมนต์เกิดขึ้นระบบคอมพิวเตอร์และที่จัดเก็บข้อมูลพื้นฐานกำลังทำงานมากกว่าที่จำเป็น คำขอ I / O แต่ละรายการใช้เวลาในการวัด แม้ในสภาพแวดล้อม SSD ไม่มีสิ่งเช่นคำขอ I / O "ทันที" เมื่อใดก็ตามที่แอปพลิเคชันร้องขอให้อ่านหรือเขียนข้อมูลและคำขอนั้นถูกแบ่งออกเป็นคำขอ I / O เพิ่มเติมที่ทำให้เกิดงานมากขึ้น งานพิเศษนี้ทำให้เกิดความล่าช้าในเวลานั้น
ดิสก์ไดรฟ์ได้รับเร็วกว่าปี แต่มี CPU ในความเป็นจริงแล้วช่องว่างระหว่างความแตกต่างของความเร็วระหว่างฮาร์ดดิสก์และ CPU นั้นกว้างขึ้นจริง ซึ่งหมายความว่าแอปพลิเคชันสามารถได้รับรอบ CPU มากมาย แต่พวกเขายังคงหิวโหยเพื่อรับข้อมูลจากที่เก็บข้อมูล ยิ่งไปกว่านั้นปริมาณของข้อมูลที่จัดเก็บเพิ่มขึ้นอย่างมาก แค่คิดถึงภาพถ่ายดิจิทัลทั้งหมดที่ถ่ายและแชร์ในช่วงวันหยุด ภาพถ่ายแต่ละภาพมีขนาดประมาณ 1MB ตอนนี้มีขนาดเกิน 15MB ต่อรูปและบางรูปถ่ายเกินขนาดนั้น การตัดต่อวิดีโอและการเรนเดอร์และการจัดเก็บภาพยนตร์ดิจิทัลก็เป็นที่นิยมเช่นกันและเนื่องจากแอปพลิเคชันผลลัพธ์กำลังจัดการข้อมูลหลายร้อยกิกะไบต์ ด้วยขนาดดิสก์คลัสเตอร์ทั่วไป 4k ไฟล์ขนาด 15MB สามารถแยกส่วนออกเป็นส่วนขยายได้เกือบ 4,000 รายการ นี่หมายถึงพิเศษ 4 คำขอดิสก์ I / O 000 รายการจำเป็นต้องใช้ในการอ่านหรือเขียนไฟล์ ไม่ว่าจะใช้หน่วยความจำประเภทใดก็จะใช้เวลาในการดำเนินการนานกว่า
ตำแหน่งทางกายภาพของข้อมูลบน SSD นั้นไม่สำคัญว่าจะเหมือนกับ HDD แม่เหล็กทั่วไป ด้วย SSD ไม่มีเวลาแฝงในการหมุนหรือการหาเวลาในการต่อสู้ ผู้เชี่ยวชาญหลายคนคิดว่าการแยกส่วนนั้นไม่เป็นปัญหาอีกต่อไป แต่ความเร็วในการเข้าถึงข้อมูลแอปพลิเคชันไม่ได้ถูกกำหนดไว้ในเงื่อนไขเหล่านั้น คำขอ I / O แต่ละรายการและทุกครั้งที่ดำเนินการใช้เวลาที่วัดได้ SSD นั้นเร็ว แต่ก็ไม่ได้รวดเร็ว ระบบไฟล์ Windows NTFS ไม่ทำงานแตกต่างกันเพราะที่เก็บข้อมูลอ้างอิงเป็น SSD เทียบกับ HDD และดังนั้นจึงยังคงมีการแยกส่วน การลด I / O ที่ไม่จำเป็นโดยการป้องกันและกำจัดการแตกแฟรกเมนต์จะลดจำนวนการร้องขอ I / O และทำให้ความเร็วในการตอบสนองข้อมูลแอพพลิเคชั่นเร็วขึ้นและปรับปรุงอายุการใช้งานโดยรวมของ SSD ในสาระสำคัญ,
นอกจากนี้ SSD ยังต้องการให้ลบข้อมูลเก่าก่อนที่จะมีการเขียนข้อมูลใหม่มากกว่าที่จะเขียนทับข้อมูลเก่าเช่นเดียวกับ HDD สิ่งนี้จะเพิ่มการสึกหรอและฉีกขาดเป็นสองเท่าและอาจทำให้เกิดปัญหาสำคัญกับประสิทธิภาพความเร็วและอายุการใช้งานของ SSD ผู้ผลิต SSD ส่วนใหญ่มีเทคโนโลยีการปรับระดับการสึกหรอที่ซับซ้อนมากเพื่อช่วยในเรื่องนี้ ปัญหาหลักคือการลดความเร็วในการเขียนเนื่องจากการกระจายตัวของพื้นที่ว่าง พื้นที่ว่างขนาดเล็กที่กระจัดกระจายไปทั่ว SSD ทำให้ระบบไฟล์ NTFS เขียนไฟล์ในส่วนที่กระจัดกระจายไปยังพื้นที่ว่างขนาดเล็กที่มีอยู่ นี่เป็นผลของการก่อให้เกิดการรับส่งข้อมูล I / O แบบสุ่มที่ช้ากว่าการดำเนินการตามลำดับ
ฉันมีผลลัพธ์มาตรฐานเพื่อสำรองข้อมูลนี้ หากคุณต้องการโพสต์ความคิดเห็นขอผลลัพธ์เหล่านี้และฉันยินดีที่จะแบ่งปันกับคุณ
สำหรับคำถามดั้งเดิมเกี่ยวกับการจัดเรียงข้อมูลแบบดั้งเดิมของ SSD ฉันเห็นด้วยว่ามันเป็นความคิดที่ไม่ดี แต่มีวิธีแก้ปัญหาเฉพาะที่ตอบสนองความกังวลของการเคลื่อนย้ายไฟล์และอายุการใช้งาน SSD
เครื่องเสมือนที่ใช้ Windows เป็นระบบปฏิบัติการการแตกแฟรกเมนต์จะยังคงเกิดขึ้นและเอฟเฟกต์รวมของทราฟฟิก I / O พิเศษจะช่วยลดความเร็วและประสิทธิภาพของระบบเกสท์ไม่เพียง แต่กับโฮสต์เท่านั้น ทั้ง Microsoft และ VMware แนะนำความจำเป็นในการแยกส่วนที่อยู่ระดับแขก
นี่คือเหตุผล ...
แอปพลิเคชันขอข้อมูล X
คำขอถูกประมวลผลโดย NTFS.sys
แอ็ตทริบิวต์ไฟล์ถูกตรวจสอบ ($ MFT) และหากข้อมูลไม่ได้อยู่ในขอบเขตเดียว (แฟรกเมนต์) ดังนั้นคำขอ I / O เพิ่มเติมจะถูกสร้างขึ้นสำหรับแต่ละขอบเขต / แฟรกเมนต์เพื่อตอบสนองคำขอข้อมูลต้นฉบับ
คำขอเหล่านี้แต่ละรายการจะถูกส่งไปยังไดรเวอร์หน่วยเก็บข้อมูลดิสก์
เมื่อข้อมูลถูกเรียกคืนข้อมูลจะถูกส่งกลับไปยังสแต็กไปยังผู้ใช้ / แอปพลิเคชัน
เครื่องเสมือน Windows แต่ละเครื่องกำลังส่งทราฟฟิก I / O ประเภทนี้ไปยังระบบโฮสต์ หากโครงสร้างระบบไฟล์มีการแตกแฟรกเมนต์ที่ระดับเครื่อง Guest / Virtual ดังนั้นสิ่งนี้จะแปลเป็นทราฟฟิก I / O เพิ่มเติมและไม่จำเป็นโดยโฮสต์จะต้องจัดการและทำแบ็กเอนด์หน่วยเก็บข้อมูล สิ่งนี้จะได้รับการทบต้นเพิ่มเติมเมื่อคุณเพิ่มเครื่องเสมือนมากขึ้นเรื่อย ๆ ในความเป็นจริงคุณสามารถมีการแตกแฟรกเมนต์ภายในการแตกแฟรกเมนต์ที่ระดับระบบไฟล์โฮสต์
ไม่ว่าข้อมูลจะถูกจัดเก็บใน SSD หรือ HDD แบบดั้งเดิมหากคุณใช้ Windows ระบบไฟล์ NTFS จะแยกส่วนและดังนั้นคุณจะไม่ประสบความสำเร็จในการผลิตความเร็วและปริมาณงานที่ได้รับเนื่องจากไฟล์ NTFS และการกระจายตัวของพื้นที่ว่าง เอฟเฟกต์สามารถวัดได้ผ่าน PerfMon โดยดูที่ความยาวคิวการอ่านดิสก์เฉลี่ยความยาวคิวการเขียนเฉลี่ยและที่สำคัญที่สุดคือแยก IO / Sec
เริ่มต้นด้วย Windows Server 2008 และ Windows Vista ให้ระวังงาน defrag ตามกำหนดการที่เป็นค่าเริ่มต้นของ Windows
มันสามารถปิดการใช้งานด้วย: schtasks /change / tn “microsoft\windows\defrag\ScheduledDefrag” /disable
หรือใช้ PowerShell:
Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask
แยกจาก: http://www.sysadmit.com/2015/10/vmware-y-gpo-defrag-windows.html
ฉันเพิ่งจัดระเบียบ VMLite XPMode VM โดยใช้ windows defrag โฮสต์บน 240Gb INTEL SSDSC2CW240A3
ขนาด Defrag VM ล่วงหน้าบนโฮสต์ - 7.83Gb (ใช้พื้นที่บน C: บน VM, 5.81Gb จาก 121Gb)
โพสต์ defrag - 9.86Gb (ใช้พื้นที่บน C: บน VM, 5.80Gb จาก 121Gb)
ไม่ใช่ผลลัพธ์ที่ฉันคาดหวังและฉันได้กู้คืนรุ่นก่อนการจัดเรียงข้อมูลล่วงหน้า
ไม่ไม่ได้จริงๆ มีสิ่งต่าง ๆ เช่น "Hyperfast" โดย Diskeeper แต่ฉันไม่รู้ว่าเทคโนโลยีเหล่านี้มีประสิทธิภาพเพียงใด (อาจเป็นเพียงการริพเพื่อพวกเขาจะไม่ตกตลาดหลังจาก SSD จะกลายเป็นกระแสหลัก)