ดูเหมือนว่าdefrag
คำสั่งของ Windows 8 จะมีตัวเลือกใหม่ ๆ รวมถึง:
/K
ดำเนินการรวมพื้นบนวอลุ่มที่ระบุ
ไม่มีใครรู้ว่าสิ่งนี้มีความหมายในภาษาอังกฤษ?
ดูเหมือนว่าdefrag
คำสั่งของ Windows 8 จะมีตัวเลือกใหม่ ๆ รวมถึง:
/K
ดำเนินการรวมพื้นบนวอลุ่มที่ระบุ
ไม่มีใครรู้ว่าสิ่งนี้มีความหมายในภาษาอังกฤษ?
คำตอบ:
PDF นี้มีคำอธิบายเกี่ยวกับสิ่งนี้พร้อมกับคุณสมบัติ NTFS ใหม่
มันบอกว่า:
การรวมพื้น
อย่างมีประสิทธิภาพ defrags ไฟล์เพื่อลดจำนวนของแผ่นพื้นที่จัดสรร
พื้นเป็นหน่วยของการจัดสรรในปริมาณที่จัดสรรบาง
ต้องการการสนับสนุนสำหรับการ
IOCTL_STORAGE_QUERY_PROPERTY
ขอรหัสคุณสมบัติของ:StorageDeviceLBProvisioningProperty
- ดึงขนาดพื้นของไดรฟ์ข้อมูล
ฉันไม่พบสิ่งใดเป็นพิเศษในการอธิบายความหมายของสิ่งนี้ในบริบทของตัวจัดเรียงข้อมูลของ Windows 8 แต่โดยทั่วไปแล้ว "การรวมแผ่นพื้น" หมายถึงวัตถุที่เคลื่อนไหวเพื่อให้วัตถุที่ปัดเศษขึ้นเป็นขนาดการจัดสรรเดียวกันถูกวางไว้ด้วยกัน
ประโยชน์ของการทำแบบนี้มักจะค่อนข้างน้อย แต่มีแนวโน้มที่จะลดเวลาในการค้นหาโดยเฉลี่ยเมื่อมีการเข้าถึงวัตถุขนาดเล็กจำนวนมาก
อันที่จริงฉันไม่คิดว่าแผ่นพื้นถูกสร้างขึ้นเพื่อปรับแต่งการจัดสรรไฟล์จำนวนมากที่มีขนาดเท่ากันเพื่อลดเวลาในการค้นหาโดยเฉลี่ย
ความคิดเห็นของฉันคือมันถูกใช้เพื่อลดเวลาแฝงสำหรับการจัดสรรบนไดรฟ์ข้อมูลขนาดใหญ่ซึ่งมิฉะนั้นจะทำให้เกิดการเข้าถึงพร้อมกันมากเกินไปโดยเธรดแบบขนานเมื่อพวกเขาต้องการจัดสรรพื้นที่บนไดรฟ์ข้อมูลเนื่องจากจะทำให้ล็อคในส่วนเดียวกันของการจัดสรรปริมาณ บิตแมป เพื่อหลีกเลี่ยงการประมวลผลบิตแมปขนาดใหญ่สามารถแบ่งย่อยเป็น "แผ่นคอนกรีต" ที่มีขนาดเป็นบิตแสดงถึงพื้นที่ที่ต่อเนื่องกันบนดิสก์โดยใช้ส่วนบิตแมปเดียวกัน (ใช้คลัสเตอร์อย่างน้อย 1 ตัวขึ้นไปหากขนาดคลัสเตอร์ของคุณเป็น 4KB 4K * 8 = 32K คลัสเตอร์ที่จัดสรรได้นั่นคือหน่วยความจำ 128MB ระบบปฏิบัติการขนาดแผ่นพื้นจริงในปริมาณนั้นปรับระหว่าง 33 และ 64 โดยอนุญาตให้มีเธรดพร้อมกันประมาณ 33 เธรดที่จัดสรรพื้นที่ในบิตแมปโดยไม่บล็อกกัน)
ดังนั้นแผ่นจะถูกใช้เพื่อเร่งการจัดสรรพื้นที่บนไดรฟ์โดยสมมติว่าเธรดที่สร้างไฟล์จำนวนมากจะทำเช่นนั้นบ่อยที่สุดภายในแผ่นของตัวเองก่อนที่จะปลดล็อคและลองแผ่นอื่นหรือลองโดยการจัดสรรจำนวนน้อยลงในแผ่นพื้นปัจจุบัน แผ่นพื้นที่ไม่มีการล็อคอีกอันหนึ่งและจากนั้นพยายามที่จะเข้าถึงการปิดกั้นการเข้าถึงพื้นในขณะนี้โดยเธรดอื่นที่ใช้อยู่ในปัจจุบัน
สิ่งนี้อธิบายว่าเหตุใดการจัดสรรบนดิสก์จึงแพร่กระจายไปทั่วทั้งไดรฟ์ เช่นนี้อธิบายว่าทำไม MFT ใน NTFS มีอย่างน้อย 2 แฟรกเมนต์ที่เป็นของแผ่นพื้นอื่น ๆ เนื่องจากจะหลีกเลี่ยงการล็อคที่รุนแรงระหว่างเธรดจำนวนมากที่ใช้โวลุ่ม คุณอาจจัดระเบียบ MFT แต่จะยังคงอยู่อย่างน้อยหนึ่งส่วนที่เก็บไว้ใน "พื้นที่สงวน" ของมันสำหรับการจัดสรรพร้อมกันซึ่งจะต้องหลีกเลี่ยงการดำเนินการปิดกั้น I / O ในปริมาณ NTFS)
ในอดีตวอลุ่ม NTFS ไม่ได้ถูกแบ่งย่อยในหลายแผ่นและมีการปรับประสิทธิภาพการทำงานจำนวนมากที่มีการบล็อกเธรดจำนวนมากและการสลับเธรดจำนวนมากเกินไปในเคอร์เนลที่รอให้เสร็จสิ้น I / O (แม้ว่าการจัดสรรในบิตแมป รวดเร็วและใช้เวลาเป็นวินาทีเป็นส่วนที่น่าสนใจที่สุดของบิตแมปคือ laready cached ในหน่วยความจำ) เมื่อการเขียนบนไดรฟ์ข้อมูลนั้นถูกฟลัชแล้วและถูกเจอร์นัลมีการล็อกอื่นเกิดขึ้นเนื่องจากการจัดสรรบนเจอร์นัลดังนั้นตอนนี้เจอร์นัลจะใช้แผ่นพื้นแยกต่างหากบนไดรฟ์ (ถ้าเป็นไปได้)
แต่ฉันไม่คิดว่า NTFS จะใช้แผ่นพื้นกับไฟล์ในขนาดที่กำหนด NTFS ภายในจะจัดระเบียบแผ่นพื้นเล็กน้อยเมื่อข้อมูลถูกลบและขนาดการจัดสรรของพวกเขาต่ำกว่าเกณฑ์และบางแผ่นสามารถรวมสองแผ่นได้
คุณสามารถรับข้อมูลเกี่ยวกับขนาดของแผ่นพื้นด้วย:
fsutil fsinfo ntfsinfo c:
เห็นได้ชัดว่าแผ่นพื้นมีการปรับพารามิเตอร์ที่มีไว้สำหรับประสิทธิภาพ แต่เครื่องมือการจัดเรียงข้อมูลของบุคคลที่สามจำนวนมากเพิกเฉยต่อการตั้งค่านี้และไม่ใช้ตำแหน่งที่เหมาะสมที่สุด ตามหลักแล้วคุณควรมีพื้นที่ว่างในแผ่นพื้นแต่ละแผ่นยกเว้นแผ่นพื้นจะเต็มไปด้วยไฟล์และดัชนีที่ไม่ได้ถูกจัดสรรใหม่และควรจะคงที่ สำหรับไฟล์ชั่วคราวและธุรกรรมขนาดเล็กจำนวนมากที่สร้างและนำกลับมาใช้ใหม่อย่างต่อเนื่องคุณจะต้องวางไว้ในแผ่นพื้นที่เพียงพอโดยขึ้นอยู่กับจำนวนเธรดที่เกิดขึ้นพร้อมกันและหลีกเลี่ยงการวางห่างจากกลุ่มอื่น ๆ ที่จำเป็นต้องอ่าน ฮาร์ดดิสก์หรืออาเรย์ RAID (ไม่สำคัญกับ SSD)
แผ่นพื้นอาจมีประโยชน์สำหรับระบบไฟล์ระยะไกล แต่ขนาดที่เหมาะสมของมันนั้นยากที่จะคาดเดาได้ แผ่นพื้นในทางตรงกันข้ามมีขนาดเล็กมากสำหรับปริมาณที่แตกต่างกันของไดรฟ์ข้อมูลเสมือนจริงแบบลำดับชั้นและมีกลยุทธ์การวางตำแหน่งที่แตกต่างกันมากให้การจัดสรร nthat นั้นเป็นเสมือนจริงและแมปไปยังสถานที่ทางกายภาพที่แตกต่างกัน
เรายังต้องการข้อมูลจาก Microsoft เกี่ยวกับพารามิเตอร์การปรับแต่งต่อไปนี้ในรีจิสทรี:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\SlabifyFunction]
MinimumReclaimSlabsMB = REG_DWORD: 10240
MinimumReclaimSlabsPercent = REG_DWORD: 10
SlabEvictUpperBoundKB = REG_DWORD: 204800
SlabEvictUpperBoundPercent = REG_DWORD: 20
ฉันคิดว่าสิ่งเหล่านี้ไม่มีวัตถุประสงค์ที่จะบันทึกเนื่องจาก Microsoft ยังคงคิดที่จะเปลี่ยนกลยุทธ์การวางตำแหน่งและอาจเปลี่ยนแปลงได้ตามเวลา พวกเขาจะไม่เปิดเผยโดย API คุณจะพบหลักฐานของพวกเขาในรีจิสทรีและในการใช้งานซอร์สโค้ดภายในของไดรเวอร์ NTFS
สิ่งที่เรารู้ก็คือแผ่นพื้นถูกเปิดเผยโดยย่อพารามิเตอร์ "/ K" ของเครื่องมือบรรทัดคำสั่ง DEFRAG.EXE ซึ่งไม่ได้ให้รายละเอียดมากนัก แต่มันง่ายที่จะสังเกตเห็นว่าการเพิ่มประสิทธิภาพ / K นั้นให้ประสิทธิภาพที่เพิ่มขึ้นอย่างมากหลังจากการติดตั้ง Windows ครั้งแรก (แม้กระทั่งก่อนที่จะทำการเพิ่มประสิทธิภาพ Bootvis หลังจากทำการบูทและทำการวัด 6 ครั้ง) นอกจากนี้ยังมีพารามิเตอร์ / L ที่เกี่ยวข้องกับการตัดแต่งบน SSD